数据库安装和升级和双主配置
备份和导入数据
./mysqldump -u root -p123321 test > test.sql
rsync -av test.sql root@192.168.0.212:/usr/local/mysql/
./mysql -uroot -p test < …/test.sql
sudo tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
sudo ln -sfn /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
设置目录权限
sudo chown -R mysql:mysql /usr/local/mysql
sudo chmod -R 755 /usr/local/mysql
进入MySQL的bin目录
cd /usr/local/mysql/bin
执行初始化(生成临时root密码 记住该密码!!!)
sudo ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
记录生成的临时密码(在输出日志中查找)
输出示例:A temporary password is generated for root@localhost: XXXXXXXX
-------------修改配置vi /etc/my.cnf
#[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
Settings user and group are ignored when systemd is used.
If you need to run mysqld under a different user or group,
customize your systemd unit file for mariadb according to the
instructions in http://fedoraproject.org/wiki/Systemd
添加以下内容(按需修改路径)
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql-5.7.33-linux-glibc2.12-x86_64/data
socket=/tmp/mysql.sock
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
bind-address = 0.0.0.0
双M结构(互为主备)配置开始
server-id = 1
log-bin = mysql-bin
binlog_format = ROW
gtid_mode = ON
enforce_gtid_consistency = ON
auto_increment_increment = 2
auto_increment_offset = 1
主库配置(确保只记录目标库的变更)
binlog-do-db = test
从库配置(确保只同步目标库的变更)
replicate-do-db = test
双M结构(互为主备)配置结束
[client]
socket=/tmp/mysql.sock
default-character-set=utf8mb4
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#log-error=/usr/local/mysql/log/mariadb/mariadb.log
#pid-file=/usr/local/mysql/run/mariadb/mariadb.pid
include all files from the config directory
!includedir /etc/my.cnf.d
-------------结束修改配置vi /etc/my.cnf
添加系统服务(可选)
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
启动服务
sudo service mysqld start
检查状态
sudo service mysqld status
登录MySQL
/usr/local/mysql/bin/mysql -u root -p
执行简单查询
SHOW DATABASES;
SELECT VERSION();
修改root密码:
UPDATE mysql.user SET Host=‘%’ WHERE User=‘root’;
FLUSH PRIVILEGES;
ALTER USER ‘root’@‘%’ IDENTIFIED BY ‘123321’;
FLUSH PRIVILEGES;
-------双主配置开始
– 在两个服务器都执行:
CREATE USER ‘repl’@‘%’ IDENTIFIED BY ‘StrongPassword’;
GRANT REPLICATION SLAVE ON . TO ‘repl’@‘%’;
FLUSH PRIVILEGES;
stop slave;
CHANGE MASTER TO
MASTER_HOST=‘192.168.0.211’,
MASTER_USER=‘repl’,
MASTER_PORT=3306,
MASTER_PASSWORD=‘StrongPassword’,
MASTER_AUTO_POSITION=1;
START SLAVE;
SHOW SLAVE STATUS;
stop slave;
RESET MASTER;
-------双主配置结束
--------升级
sudo tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
sudo ln -sfn /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
备份旧文件(可选)
sudo cp /usr/local/mysql/bin/mysqld /backup/
替换二进制文件
sudo cp /usr/local/mysql-5.7.44-linux-glibc2.12-x86_64/bin/* /usr/local/mysql/bin/
升级表
sudo service mysqld start
/usr/local/mysql/bin/mysql_upgrade -u root -p
--------升级结束