重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)
yum方式安装
echo "删除系统默认或之前可能安装的其他版本的 mysql"
for i in $(rpm -qa|grep mysql);do rpm -e $i --nodeps;done
rm -rf /var/lib/mysql && rm -rf /etc/my.cnf
echo "安装Mysql8.0 的yum资源库"
yum -y localinstall https://repo.mysql.com//mysql80-community-release-el7-5.noarch.rpm
echo "安装Mysql8.0.29"
yum -y install mysql-community-server
echo "启动之前修改配置文件,增加上不区分大小写的参数"
rm -rf /etc/my.cnf
cat >> /etc/my.conf << EOF
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-client-handshake=FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4' # 注意,是英文状态下的单引号,不是中文状态下的
default_authentication_plugin=mysql_native_password
default-storage-engine=INNODB
lower_case_table_names=1
skip-name-resolve
max_connections=500
EOF
echo "启动MySQL服务器和MySQL的自动启动"
systemctl start mysqld.service
systemctl enable mysqld.service
echo "查看默认密码"
grep 'temporary password' /var/log/mysqld.log
echo "使用默认密码初次登录后, 必须要重置密码"
echo "8.0.29版本修改密码提示不符合密码复杂度,修改密码复杂度找不到密码策略,安装密码策略需要先修改密码,陷入死循环"
echo "解决办法;直接修改密码,密码设置复杂一些"
echo "第一次登录是无法修改规则的,否则会提示让你先修改密码后才能进行这种操作。为了避免进入这样的死循环。唯一办法是仿照默认密码的样式设置一个密码,这个密码要有大小写、数字和两个以上的特殊字符 。然后会提示你修改成功。"
如下修改密码规则这一步可以不用操作:
#设置强度,0是最低级别,数字越大,限制越多
mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)
#设置密码长度不能少于6位,然后我还用之前的那个“123456”,这次没问题啦。
mysql> set global validate_password.length=6;
Query OK, 0 rows affected (0.00 sec)
#设置真正的密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '123456';
按照默认密码的复杂度直接使用新的复杂密码进行密码修改
# mysql -hlocalhost -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'E9M!EYjGWH%QLJzP';
mysql> flush privileges;
开启navicat远程登录的两种办法
总结:用户host类型是%,且密码类型是:mysql_native_password
新建普通用户进行远程登录
mysql> create user 'putong_user'@'%' identified with mysql_native_password by 'iD!^^E123Yxr5$ph';
mysql> GRANT ALL ON *.* TO 'putong_user'@'%'; # 没有给别人赋权限的权限,如果需要执行这个命令:GRANT all PRIVILEGES ON *.* TO 'putong_user'@'host' IDENTIFIED BY 'iD!^^E123Yxr5$ph' WITH GRANT OPTION;
mysql> flush privileges;
直接修改权限
MySQL8新增了一种密码类型“caching_sha2_password”, 所以有些拥有这个属性的用户就是不能从远程登录,可以通过查看mysql数据库的user表获取相关信息
select host,user,plugin from mysql.user;
修改用户使用的密码类型即可解决:
update user set plugin='mysql_native_password' where user='putong_user';
root账号host的类型只允许本机进行登录,开启root远程连接需要修改host类型
mysql> update mysql.user set host='%' where user="root";
mysql> flush privileges;
mysql> select host,user,authentication_string from mysql.user;
搭建主从
主库IP:192.168.220.200
从库IP:192.168.220.201

主库操作
创建同步账号,仅限从库IP进行连接
mysql> create user 'repl'@'192.168.20.201' identified with mysql_native_password by 'iD!^^EjU#Yxr5$ph';
mysql> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'repl'@'192.168.20.201' with grant option;
mysql> flush privileges;
注意:创建同步账号的时候需要加上 with mysql_native_password,不加的话从库开启同步后会报错:(前提是数据库配置文件中未加default_authentication_plugin=mysql_native_password)
Last_IO_Error: error connecting to master 'repl@192.168.20.200:3306' - retry-time: 60 retries: 1 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.
注意:同步账号授权时需要加上 with grant option,不加的话从库开启同步后会报错
修改主库配置文件,在原有基础上增加如下配置,然后重启
server-id=200
log-bin=mysql-bin
binlog_format=row
expire_logs_days=7
sync_binlog=1
# 使用如下配置会存在跨库语句更新被狐狸的问题,切换到其他库进行操作test库,从库不会进行有关更新
#binlog-do-db=test # 要同步的数据库
#binlog-do-db=mysql # MySQL库是本身自带的,这个不同步的话,主从库各自维护自己的账号信息,对以后使用ProxySQL不利
#binlog-ignore-db=information_schema,performation_schema,sys # 不要同步的数据库,
# 使用如下语句跨库更新语句被忽略的问题
replicate_wild_do_table=test.% # 复制多个数据库,重复设置这个选项
replicate_wild_do_table=mysql.%
replicate_wild_ignore_table=information_schema.%,performation_schema.%,sys.% # 复制多个数据库,重复设置这个选项(经检测可以用逗号分隔写在一行)
read_only=0 #0表示开启读写,1表示关闭写
super_read_only=0
test数据库为尚未创建的库,因此验证的时候可以直接在主库上创建这个数据库,从库上就会自动同步创建该库
若要同步的数据库是主库上已经存在的数据库,因此要先在主库上导出该库数据为sql文件,然后把该sql文件在从库中导入进去 (从库未修改配置文件之前操作,避免用户权限只读)
登录主库,获取主库参数
mysql> show master status;
+------------------+----------+--------------+--------------------------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+--------------------------------------------------+-------------------+
| mysql-bin.000003 | 1836 | test | information_schema,performation_schema,sys,mysql | |
+------------------+----------+--------------+--------------------------------------------------+-------------------+
1 row in set (0.00 sec)
记录下 mysql-bin.000003 和 1836,从库进行同步操作需要使用这俩参数
从库操作
修改从库配置文件,在原有基础上增加如下配置,然后重启
server-id=201
log-bin=mysql-bin
binlog_format=row
expire_logs_days=7
sync_binlog=1
log_slave_updates=1 # 从主库复制数据时可以写入到从库本地的binlog日志中
relay-log=relay-log-bin #添加,开启中继日志,从主服务器上同步日志文件记录到本地
relay-log-index=server1-relay-bin.index #添加,定义中继日志文件的位置和名称
read_only=1 # 普通用户只读 #0表示开启读写,1表示关闭写
super_read_only=1 # root用户只读
replicate_do_db=test # 要同步的数据库,跟主库的binlog-do-db参数配置保持一致,多个数据库,重复设置这个选项
replicate_do_db=mysql
replicate-ignore-db=information_schema,performation_schema,sys # 不同步的数据库,跟主库的binlog-ignore-db参数配置保持一致,多个数据库,重复设置这个选项(经检测可以用逗号分隔写在一行)
登录从库,开始配置同步操作
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.20.200',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='iD!^^EjU#Yxr5$ph',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=1836;
mysql> start slave;
mysql> show slave status \G
*************************** 1. row ***************************
Slave_IO_State: Waiting for source to send event
Master_Host: 192.168.20.200
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000003
Read_Master_Log_Pos: 1836
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 326
Relay_Master_Log_File: mysql-bin.000003
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,mysql
Replicate_Ignore_DB: information_schema,performation_schema,sys
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1836
Relay_Log_Space: 540
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 200
Master_UUID: e794f691-d8d5-11ec-88e8-000c29b374da
Master_Info_File: mysql.slave_master_info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Replica has read all relay log; waiting for more updates
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
Master_public_key_path:
Get_master_public_key: 0
Network_Namespace:
1 row in set, 1 warning (0.00 sec)
重要参考文档---MySQL 8.0.29 使用yum方式安装,开启navicat远程连接,搭建主从,读写分离(需要使用到ProxySQL,此文不讲述这个)的更多相关文章
- VMware workstation16 中Centos7下MySQL8.0安装过程+Navicat远程连接
1.MySQL yum源安装 2.安装后,首次登录mysql以及密码配置3.远程登录问题(Navicat15为例) 一.CentOS7+MySQL8.0,yum源安装1.安装mysql前应卸载原有my ...
- Mysql、Oracle、SQLServer等数据库参考文档免费分享下载
场景 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统 ...
- 【已解决】phpMyAdmin中导入mysql数据库文件时出错:您可能正在上传很大的文件,请参考文档来寻找解决办法
期间,用phpMyAdmin去导入90M左右的mysql数据库文件时出错: 您可能正在上传很大的文件,请参考文档来寻找解决方法. [解决过程] 1.很明显,是文件太大,无法导入.即上传文件大小有限制. ...
- m_Orchestrate learning system---四、多看参考文档很多事情很轻松就解决了
m_Orchestrate learning system---四.多看参考文档很多事情很轻松就解决了 一.总结 一句话总结:多看参考文档啊 1.面包屑导航如何实现? 1 <ol class=& ...
- Mongoose学习参考文档——基础篇
Mongoose学习参考文档 前言:本学习参考文档仅供参考,如有问题,师请雅正 一.快速通道 1.1 名词解释 Schema : 一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力 Model ...
- css参考文档; 官方英文说明!! 1 margin padding 百分比参照物 2 margin值为auto时的说明 3 div在div里垂直居中方法 4 dispaly:flex说明
css参考文档 http://css.doyoe.com/ 两篇很好的文章:(下面的css官方英文说明链接 有时间可以研究下 http://www.w3.org/TR/css3-box/ ...
- oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)
数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容 用途 详细信息 Patchsets ...
- 《Java开发学习大纲文档》V7.0
<Java开发学习大纲文档>V7.0简介: 本文档是根据企业开发所需要掌握的知识点大纲进行总结汇编,是Java开发工程师必备知识体系,系统化学习针对性非常强,逻辑分析能力非常清晰;技术方面 ...
- [转载]正则表达式参考文档 - Regular Expression Syntax Reference.
正则表达式参考文档 - Regular Expression Syntax Reference. [原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/regref. ...
随机推荐
- 梯度下降GD,随机梯度下降SGD,小批量梯度下降MBGD
阅读过程中的其他解释: Batch和miniBatch:(广义)离线和在线的不同
- mongodb 数据块迁移的源码分析
1. 简介 上一篇我们聊到了mongodb数据块的基本概念,和数据块迁移的主要流程,这篇文章我们聊聊源码实现部分. 2. 迁移序列图 数据块迁移的请求是从配置服务器(config server)发给( ...
- JetBrains系列软件激活
1.将以下记录加入hosts文件 0.0.0.0 account.jetbrains.com0.0.0.0 www.jetbrains.com 2.激活方式选择licence server,填写以下激 ...
- 在 SQL Server 中使用 Try Catch 处理异常
如何在 SQL Server 中使用 Try Catch 处理错误? 从 SQL Server 2005 开始,我们在TRY 和 CATCH块的帮助下提供了结构错误处理机制.使用TRY-CATCH的语 ...
- RESTAPI 版本控制策略【eolink 翻译】
微服务,是现阶段开发建设云原生应用程序的流行趋向.API 版本控制有益于在辨别出所需要的调节时加速迭代更新的速度. 根据微服务架构的关键构件其一,是 API 的设计和规范.针对 API,版本控制是不可 ...
- 2022-07-15 第六组 润土 Java03数据结构学习笔记
数据结构: 数组:最基本的数据结构(线性表) 链表:单向链表,双向链表 树:二叉树 图:深度优先遍历.广度优先遍历 查找: 线性查找 折半查找 排序: 冒泡排序* 快速排序 插入排序* 选择排序* 希 ...
- .Net CLR R2R编译的原理简析
前言 躺平了好一段时间了,都懒得动了.本文均为个人理解所述,如有疏漏,请指正. 楔子 金庸武侠天龙八部里面,少林寺至高无上的镇寺之宝,武林人士梦寐以求的内功秘笈易筋经被阿朱偷了,但是少林寺也没有大张旗 ...
- CF1705A Mark the Photographer 题解
题意: 给定一队人的身高,将其分成两队,问能否实现前面的人均低于后面的人至少 \(x\) 个单位长度. 做法: 将这队人的身高进行排序,\(h_1 \sim h_n\) 即为第一队,\(h_{n+1} ...
- 两个比较好用的JS方法,用来处理树形结构!
一.平级结构转树形结构 /** * 平级结构转树形结构 * * 示例:const jsonDataTree = listTransToTreeData(jsonData, 'id', 'pid', ' ...
- 用js获取当前页面的url
1.获取当前或者指定页面的文件名或路径 window.location.pathname 2.设置或获取整个URl字符串 window.location.href 3.设置或获取URL相关的端口号 w ...