参考链接:https://baijiahao.baidu.com/s?id=1673183351729829263&wfr=spider&for=pc
1、安装虚拟机、安装centos系统(http://mirrors.163.com/centos/7.9.2009/isos/x86_64/)镜像站
以下操作全部在虚拟中操作
2、下载mysql(wget https://dev.mysql.com/get/Downloads/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz)
报错
解决:yum -y install wget
安装报错:Loaded plugins: fastestmirror Determining fastest mirrors
解决:fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了。既然提示不能用了,那就禁用掉!
1、修改插件的配置文件
vi /etc/yum/pluginconf.d/fastestmirror.conf
enabled = 1//由1改为0,禁用该插件
2、修改yum的配置文件
vi /etc/yum.conf
plugins=1//改为0,不使用插件
执行下载mysql 事件
安装mysql
出现错误:
1、如果执行初始化时出现报错:./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory,就是少东西,centos使用yum装yum -y install numactl,装了后在执行初始化命令就可以了。
2、如果出现错误:initialize specified but the data directory has files in it. Aborting.
大意是提示data目录有文件,把mysql安装目录data文件夹里的内容清空(建议读者备份到其他地方)。再次执行"mysqld --initialize",没有报错了!
3、如果出现错误You must reset your password using ALTER USER statement before executing this statement
意思是:在执行该语句之前,你必须通过 alter user 来修改密码
执行修改密码命令:(user() 获取当前登录用户,参考地址https://blog.csdn.net/qq_42618394/article/details/103181778)
alter user user() identified by '密码自定义,尽量复杂一点,包含英文、下划线、数字'
执行初始化数据库命令会生成一个默认root密码,需要记住
按esc,输入:wq,保存并退出my.cnf,启动mysqld
service mysqld start
查看mysqld的状态 service mysqld status
登录mysql并修改root密码
cd /usr/local/mysql
./bin/mysql -uroot –p 回车,此处需要输入默认登录密码,如出现一下信息表明登录成功
修改数据库密码:
切换数据库 use myql
flush privileges命令很重要,一定要执行
使用quit;退出mysql 使用新的密码就可以登录
设置mysql远程可访问
1、关闭防火墙
防火墙的开启、关闭、禁用命令
(1)设置开机启用防火墙:systemctl enable firewalld.service
(2)设置开机禁用防火墙:systemctl disable firewalld.service
(3)启动防火墙:systemctl start firewalld
(4)关闭防火墙:systemctl stop firewalld
(5)检查防火墙状态:systemctl status firewalld
2、设置root 用户指定地址链接
Use mysql
设置所有地址均可访问,也可设置指定地址访问(% 切换为对应IP地址)
Update user set host='%' where user='root';
刷新:flush privileges;
Mysql 主从数据库配置:
查看虚拟机IP地址命令:ip addr
本地两台虚拟机IP为 192.168.23.128、192.168.23.129
设置128 为主库。129为从库
本地mysql密码 root_123
修改mysql的配置文件:# vim /etc/my.cnf,加上如下内容,修改配置后需要重启mysql服务器
Service mysqld restart
测试log_bin是否成功开启
Show variables like '%log_bin%';
出现下图,log_bin为ON则表示开启成功,OFF表示开启失败
配置好后,查看主服务器状态:show master status;
slave上配置relay-log
vi /etc/my.cnf,添加如下内容
将master和slave联系起来,slave需要知道master的地址
master的数据库中建立备份账号repl为用户名,192.168.23.129代表从数据库的主机地址,如下表示远程地址为密码为123456的,用户名是repl就可以连接到master主机,并为其授予 replication slave 权限。123456为master的连接密码。
create user repl;创建用户名为repl的用户
Grant replication slave on . to 'repl'@'192.168.23.129' identified by '123456'
FLUSH PRIVILEGES;
use mysql;
select user,authentication_string,host from user;可看到我们刚创建的备份账号
重启MySQL服务并设置读取锁定:登录mysql],mysql> flush tables with read lock;读取锁定的意思是只能读取,不能更新,以便获得一个一致性的快照
查看主服务器上当前的二进制日志名和偏移量值:
我们已经在主库配置好了允许从库访问主库的用户名和密码,下面我们对slave进行操作:
mysql>changemastertomaster_host='192.168.0.188',master_port=3306,master_user='repl',master_password='123',master_log_file='master-bin.000001',master_log_pos=154;
其中的master_log_file,就是主库中file,在主库中使用showmasterstatus;就可以看到了。
启动slave: start slave;
查看slave从机的状态(G表示竖着展示):show slave status G
查看从机状态,如果出现错误:Could not find first log file name in binary log index file
原因:从数据库读取日志文件位置问题,没有与主数据的位置相对应
解决办法:查看主数据库的状态
更改从数据库读取日志的文件和位置
CHANGE MASTER TO MASTER_LOG_FILE='master_log.000005',MASTER_LOG_POS=154;
change master to master_host='192.168.23.128',master_user='repl',master_password='123456',master_log_file='master_log.000005';
第二个语句可以先不执行,先启动从库,查看状态,不行的话再执行语句
关闭掉主数据库的读取锁定
Unlock tables;
通过create database testm; 语句测试成功,会自动同步至从服务器。
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论