1 首先检测当前的系统是否已经安装了MySQL
yum list installed | grep mysql
如果有的话,删除
2 下载rpm库资源,在网页 https://dev.mysql.com/downloads/repo/yum/ 中可以自己选择合适的版本, 然后安装
因为本人的版本是centos 7 ,所以:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm
如果不想安装最新版本的mysql,可以参考 https://translate.google.cn/#en/zh-CN/MySQL Cluster CGE 进行设置。
3 安装并启动mysql
yum install mysql-community-server
service mysqld start
4 初始的可能的mysql配置
mysql安装后默认会生成一个随机密码,我们可以通过以下命令进行查看:
grep password /var/log/mysql.log
然后使用登录mysql
mysql -u root -p
修改密码:
SET PASSWORD = PASSWORD("新密码")
由于mysql可能(默认)加载了密码验证插件,所以如果新密码过于简单可能会报错。
解决方法:
set global validate_password_policy = 0; // 这样将验证规则改为基于长度
set global validate_password_length = 1; // 设置密码最短长度,本例中设置为1
还有其他解决办法,详情请看:https://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html
创建主从复制用户并授权:
grant replication slave on *.* to mncu@hostname identified by 'password';
5 关闭selinux
setenforce 0
vim /etc/selinux/config 将SELINUX参数设置为disabled
6 防火墙设置
因为centos默认的防火墙是Firewall而不是iptables,所以设置一下。
firewall-cmd –add-port=3306/tcp
firewall-cmd –permanent –add-port=3306/tcp
firewall-cmd –reload success
7 配置mysql配置文件。
主:
vim /etc/my.cnf 添加以下几行:
log-bin=mysql-bin # slave会基于此log-bin来做replication
server-id=1 # master的标示
innodb_flush_log_at_trx_commit=1
sync_binlog=1
从:
vim /etc/my.cnf 添加该行:
server-id=2 #slave的标示
8 配置主从:
主:
show master status;
会显示如下信息:
File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 329 | | |
从:
stop slave;
change master to master_user=’mncu’,master_password=’123456’,master_host=’192.168.1.11’,master_port=3306,master_log_file=’mysql-bin.000001’,master_log_pos=329;
start slave;