mysql-proxy 配置 读写分离 主从数据库配置
mysql的安装
下载并安装MySQL官方的 Yum Repository
使用yum安装
yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server
修改root密码
安装成功后默认会创建一个root用户,并携带一个初始密码,需要修改初始密码,启动mysql
systemctl start mysqld.service
在Mysql的日志找出初始密码,命令如下
grep "password" /var/log/mysqld.log
通过下面的命令进入数据库
mysql -u root -p
修改validate_password_policy参数的值(因为mysql默认不允许特别简单的密码,修改密码的安全等级)
mysql> set global validate_password_policy=0;
在mysql客户端连接环境下执行修改密码命令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new@password';
此时密码修改成功,重启mysql服务
systemctl restart mysqld.service
(如果上述方法修改密码不成功的话,还可以这样
mysql> use mysql; Database changed mysql> update user set password=password('yourpass') where user='root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
)
修改字符集为UTF-8
通过命令 mysql -u root -p 进入Mysql,注意是新密码,在mysql环境下通过如下命令查看字符集
show variables like '%character%';、
我们看到上面的字符集不都是utf-8,现在我们在bash终端打开mysql配置文件
vi /etc/my.cnf
添加上这些
#add by tangxiaobai character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
设置mysql支持远程连接
到现在为止,我们的Mysql还不能远程连接访问,这里我们用的是该表法,登录mysql命令客户端,执行以下命令
grant all privileges on *.* to root@'%' identified by '123456' with grant option; flush privileges;
然后出去把防火请关闭
systemctl stop firewalld.service
但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch
教程中新建了一个账号
create user 'repl'@'%' identified by 'repl_Pass1';
授予REPLICATION SLAVE权限:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
直接用root的话一样
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%';
mysql的安装 主从都是一样的
下面配置mysql的主从数据库配置
主服务器:
打开配置文件
vi /etc/my.cnf
添加以下内容
log_bin=master-bin log_bin_index = master-bin.index server-id=4 expire-logs-days=7 binlog_ignore_db=mysql binlog_ignore_db=information_schema binlog_ignore_db=performation_schema binlog_ignore_db=sys binlog_do_db=mybatis
然后重启mysql 查看状态
mysql> show master status;
记录下来file和position的值 之后配置从服务器需要用到
从服务器:
vi /etc/my.cnf
添加以下内容
server-id = 2 relay-log = slave-relay-bin relay-log-index = slave-relay-bin.index
重启mysql
登录mysql 连接master数据库(具体参数根据实际情况填写)
mysql> change master to master_host='172.18.74.76', master_port=3306, master_user='root', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=235;
之后启动salve
mysql> start slave
mysql-proxy
把mysql-proxy的包解压
把mysql-proxy添加到环境变量里面 /etc/profile文件 添加这么一句
export PATH=$PATH:/opt/software/mysql-proxy-0.8.5-linux-el6-x86-64bit/bin
source /etc/profile
之后 启动mysql 加上 --deamon是在后台运行(别把读写的搞混了)(主服务器是写入,从服务器是du'w)
mysql-proxy --keepalive --proxy-read-only-backend-addresses=172.18.74.61:3306 --proxy-backend-addresses=172.18.74.60:3306 --proxy-lua-script=/opt/software/mysql-proxy-0.8.5-linux-el6-x86-64bit/share/doc/mysql-proxy/rw-splitting.lua --log-file=/opt/software/mysql-proxy-0.8.5-linux-el6-x86-64bit/var/mysql-proxy.log
netstat -antup | grep proxy
查看运行 端口 默认为 4040