目录
MySQL集群读写分离方案A-(MySQL+GTID+ProxySQL+Keepalive)之3/7:数据库多节点安装配置
一、数据库安装
1、下载各种文件
(1)数据库安装包(5.7.40)
链接:https://pan.baidu.com/s/1-r9avc8hOUAdf9svUxYlIw 提取码:yu34
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
(2)配置文件—my.cnf
cd /mysql/soft wget https://download.topunix.com/MySQL/config-MySQL5.7/my.cnf.linux
(3)启动脚本—mysql.server
cd /mysql/soft wget https://download.topunix.com/MySQL/config-MySQL5.7/mysql.server
(4)开机服务—mysqld.service
cd /mysql/soft wget https://download.topunix.com/MySQL/config-MySQL5.7/mysqld.service
2、安装依赖包
# install the basie lib mount /dev/cdrom /mnt yum remove mariadb* -y yum install gcc gcc-c++ perl-DBD-MySQL ncurses-devel.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel perl openssh-clients setuptool sysstat make redhat-lsb* -y yum install -y lrzsz.x86_64
3、创建用户
groupadd mysql useradd -r -g mysql -s /bin/false mysql cd /mysql/app/ tar zxvf /mysql/soft/mysql-5.7.40-linux-glibc2.12-x86_64\(MD5_\ ce0ef7b9712597f44f4ce9b9d7414a24\).tar.gz mv /mysql/app/mysql-5.7.40-linux-glibc2.12-x86_64 mysql echo "export PATH=\$PATH:$HOME/bin:/mysql/app/mysql/bin">> /etc/profile source /etc/profile
4、创建目录
# add mysql account,create the basic directory mkdir -p /mysql/data/3306/data mkdir -p /mysql/log/3306/binlog mkdir -p /mysql/log/3306/relaylog mkdir -p /mysql/backup/backup-db mkdir -p /mysql/backup/backup-tmp mkdir -p /mysql/backup/backup-binlog chown -R mysql:mysql /mysql/
5、初始化数据库
(1)修改每台my.cnf 配置
rm -rf /mysql/data/3306/data/ cp /mysql/soft/my.cnf.linux /mysql/data/3306/my.cnf
注:初始化数据库前,先把ip进行修改(每一台单独执行)
192.168.21.151:参数文件里配置的为1.51,所以本机不用更改 192.168.21.151:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.151/g' /mysql/data/3306/my.cnf 192.168.21.152:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.152/g' /mysql/data/3306/my.cnf 192.168.21.153:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.153/g' /mysql/data/3306/my.cnf 192.168.21.154:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.154/g' /mysql/data/3306/my.cnf 192.168.21.155:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.155/g' /mysql/data/3306/my.cnf 192.168.21.156:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.156/g' /mysql/data/3306/my.cnf 192.168.21.157:sed -i 's/bind_address=\ 192.168.1.51/bind_address=192.168.21.157/g' /mysql/data/3306/my.cnf
(2)初始化数据库(单独执行)
注:所有数据库通过交互界面统一执行
/mysql/app/mysql/bin/mysqld --defaults-file=/mysql/data/3306/my.cnf --initialize --user=mysql --basedir=/mysql/app/mysql --datadir=/mysql/data/3306/data ln -sf /mysql/data/3306/mysql.sock /tmp/mysql.sock
6、删除my.cnf
(1)卸载原数据库
yum remove mariadb yum remove mysql*
(2)删除配置文件
# remove default my.cnf rm -f /etc/my.cnf rm -rf /etc/my.cnf.d
7、通过默认密码直接进行修改
(1)启动数据库
/mysql/app/mysql/bin/mysqld_safe --defaults-file=/mysql/data/3306/my.cnf --datadir=/mysql/data/3306/data --user=mysql &
(2)赋值随机密码至变量defaultmysqlpwd
defaultmysqlpwd=`grep 'A temporary password' /mysql/log/3306/mysql51db-error.err | awk -F "root@localhost: " '{ print $2}' |tail -n1`
(3)更改localhost密码为rootroot
mysql -uroot -p"${defaultmysqlpwd}" --connect-expired-password <<EOF ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootroot'; EOF
(4)更改root@%密码
/mysql/app/mysql/bin/mysql -uroot --password='rootroot' --connect-expired-password --socket='/mysql/data/3306/mysql.sock' -e " alter user 'root'@'localhost' identified by 'rootroot';" /mysql/app/mysql/bin/mysql -uroot --password='rootroot' --socket='/mysql/data/3306/mysql.sock' -e "create USER 'root'@'%' IDENTIFIED BY 'rootroot';" /mysql/app/mysql/bin/mysql -uroot --password='rootroot' --socket='/mysql/data/3306/mysql.sock' -e "grant all privileges on *.* to 'root'@'%' identified by 'rootroot' with grant option;flush privileges;"
8、测试数据库读写
/mysql/app/mysql/bin/mysql -uroot --password='rootroot' --socket='/mysql/data/3306/mysql.sock' -e " create database t; use t;create table t1 select 1 as a; select * from t1;drop database t;"
9、关闭测试数据库
10、数据库自动启动配置
根据上述下载的文件进行配置,具体修改配置见:https://www.topunix.com/post-11783.html#MySQL57Linux78systemctl_start_mysqld
(1)备份原程序中的mysql.server脚本
cp /mysql/app/mysql/support-files/mysql.server /mysql/app/mysql/support-files/mysql.server.bak
(2)拷贝脚本mysql.server到/mysql/app/mysql/support-files/
cp /mysql/soft/mysql.server /mysql/app/mysql/support-files/
(3)拷贝脚本mysqld.service到/etc/systemd/system
cp /mysql/soft/mysqld.service /etc/systemd/system (4)重新加载系统服务
systemctl daemon-reload
(5)启动MySQL数据库
systemctl stop mysqld systemctl start mysqld
(6)设置随系统开机启动
systemctl enable mysqld systemctl status mysqld
10、登录测试
mysql -uroot -prootroot -e "show databases"