備份和導入數據
./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
--------升級結束