Loading... # CentOS安装与配置MySQL 1. 安装rz命令的工具包,为了更加方便的传输文件到Linux服务器 ```bash yum install lrzsz ``` 2. 安装MySQL-Server ```bash yum install mysql-server ``` 3. 运行与设置权限 ```bash systemctl start mysqld # 启动MySQL服务 mysql -uroot # 直接登录 use mysql -- 切换到mysql数据库 mysql> ALTER user 'root'@'localhost' IDENTIFIED BY 'Password'; -- 注意这里最后的Passoword是密码哦 exit; -- 退出MySQL systemctl restart mysqld # 重新启动MySQL服务 # 此时此刻,登录MySQL就需要使用密码登录了 ``` # 集群准备 ## 主机 1. 创建测试数据库 ```bash mysql -uroot -p mysql> create database db1; Query OK, 1 row affected (0.00 sec) mysql> create database db2; Query OK, 1 row affected (0.00 sec) mysql> create database db3; Query OK, 1 row affected (0.00 sec) ``` 2. 配置my.cnf ```bash cd /etc # 切换到配置目录 vim my.cnf # 编辑my.cnf #--------------添加如下配置-------------- [mysqld] server-id=233 log-bin=mysql-bin binlog-do-db=db1 binlog-do-db=db2 binlog-do-db=db3 #--------------添加以上配置-------------- # 如果不写binlog-do-db,那就是所有库 ``` 3. 重启服务 ```bash service mysqld restart ``` 4. 创建同步用户,授予用户slave REPLICATION SLAVE权限和REPLICATION CLIENT权限 ```sql CREATE USER 'slave'@'%' IDENTIFIED BY 'Password'; GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; ``` 5. :warning: 记录配置 ```sql show master status; ``` 此时要记录File和Pos的值,后面会用到。 ## 从机 1. 在my.cnf配置中新增如下配置 ``` [mysqld] server-id=134 log-bin=mysql-slave-bin relay_log=mysql-relay-bin ``` 2. 重启mysql服务 ```bash service mysqld restart ``` 3. 指定主机 ```sql change master to master_host='192.168.40.133', master_user='slave', master_password='Password', master_port=3306, master_log_file='mysql-bin.000015', master_log_pos=437, master_connect_retry=60; ``` 4. 查看主从同步状态以及开启主从复制 ```sql show slave status \G; start slave; show slave status \G; ``` # 测试 主机中插入几个数据试试看喽 # :warning: 异常错误解决方案 1. Slave_IO_Running 和 Slave_SQL_Running 总是 Connecting > 1、网络不通,检查ip端口 > 2、密码不对,检查用于同步的用户名和密码 > 3、pos不对,检查Master的Position > 4、mysql8特有的密码规则问题引起 2. Slave_IO_Running: No Slave_SQL_Running: Yes > 修改server-uuid > > ```bash > cd /var/lib/mysql > vim auto.cnf > ``` 3. Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. > 修改密码规则 > > ```sql > ALTER USER'slave'@'%' IDENTIFIED WITH mysql_native_password BY 'Password'; > ``` # 测试 ![image.png](https://www.zunmx.top/usr/uploads/2021/08/1621825683.png) ![image.png](https://www.zunmx.top/usr/uploads/2021/08/2992041096.png) ![image.png](https://www.zunmx.top/usr/uploads/2021/08/4237355910.png) ![image.png](https://www.zunmx.top/usr/uploads/2021/08/1545626772.png) # 注意 从机不要进行增删改操作,否则会影响复制进度。 # 命令汇总 ## 设置从机的主机配置 ```sql change master to master_host='192.168.40.133', master_user='slave', master_password='Password', master_port=3306, master_log_file='mysql-bin.000015', master_log_pos=7869, master_connect_retry=60; ``` ## 查看主机和从机的状态 ```sql SHOW MASTER STATUS; # 这样看舒服 SHOW SLAVE STATUS\G # 这样看舒服 ``` 不会说,; 和 \G 的区别还有同学不知道叭。🤭 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏