Linux下MySQL多例項部署記錄

上古南城發表於2021-08-17

什麼是MySQL多例項

  • 簡單地說,Mysql多例項就是在一臺伺服器上同時開啟多個不同的服務埠(3306、3307),同時執行多個Mysql服務程式,這些服務程式通過不同的socket監聽不同的服務埠來提供服務。
  • 這些Mysql多例項公用一套Mysql安裝程式,使用不同的my.cnf(也可以相同)配置檔案,啟動程式(也可以相同)和資料檔案。在提供服務時,多例項 Mysql在邏輯上看來是各自獨立的,它們根據配置檔案的對應設定值,獲得伺服器相應數量的硬體資源。
  • 打個比方,Mysql多例項就相當於房子的多個臥室,每個例項可以看作一間臥室,整個伺服器就是一套房子,伺服器的硬體資源(cpu、mem、disk)、軟體資源(centos作業系統)可以看作房子的衛生間、客廳,是房子的公用資源。

    

MySQL多例項優缺點:

  • 1、有效利用伺服器資源:當單個伺服器資源有空剩餘時,可以充分利用剩餘的資源建立更多的MySQL例項提供更多的服務。
  • 2、節約伺服器資源:當公司資金緊張,但是資料庫又需要多個並且需各自盡量獨立提供服務或者需要主從同步等,MySQL多例項就再好不過了。
  • 3、資源相互爭搶問題:當某個服務例項併發很高或者有慢查詢時,整個例項會消耗更多的記憶體、CPU、磁碟、IO資源,導致伺服器上的其它例項提供服務的質量下降,這就相當於大家在一個房子的不同臥室(MySQL例項),需要上廁所(硬體的CPU、記憶體、磁碟的IO資源)時,一個佔用了廁所,其他人都要等待。

Mysql多例項安裝指南:
  具體詳細參考官網 (https://dev.mysql.com/doc/refman/5.7/en/installing.html

  • mysql的安裝方法有多種,如二進位制安裝、原始碼編譯安裝、yum安裝;
  • yum安裝都是預設路徑,安裝相對簡單;
  • 原始碼安裝編譯的過程比較長,若沒有對原始碼進行修改且要求使用mysql較高版本;

準備環境。

[root@mysql-multi ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
[root@mysql-multi ~]# uname -r
3.10.0-862.el7.x86_64
[root@mysql-multi ~]# hostname -I
172.16.70.37
[root@mysql-multi ~]# getenforce
Permissive
[root@mysql-multi ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Jul 23 14:36:11 mysql-multi systemd[1]: Starting firewalld - dynamic firewall daemon...
Jul 23 14:36:12 mysql-multi systemd[1]: Started firewalld - dynamic firewall daemon.
Jul 23 15:09:10 mysql-multi systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jul 23 15:09:11 mysql-multi systemd[1]: Stopped firewalld - dynamic firewall daemon.

# CentOS 7 版本的系統預設自帶安裝了MariaDB,需要先清理
[root@mysql-multi ~]# rpm -qa |grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
或
[root@mysql-multi ~]# yum list installed | grep mariadb
mariadb-libs.x86_64                  1:5.5.56-2.el7                    @anaconda
# 解除安裝
[root@mysql-multi ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
或
[root@mysql-multi ~]# yum -y remove mariadb-libs.x86_64

安裝並配置MySQL多例項。

  • YUM源安裝方式如下:

  官網rpm包下載:https://downloads.mysql.com/archives/community,選擇下載適合的版本。

#  將rpm包上傳至伺服器
[root@mysql-multi ~]# yum install libaio lrzsz tree net-tools -y
[root@mysql-multi ~]# ls
mysql-community-client-5.7.34-1.el7.x86_64.rpm  mysql-community-libs-5.7.34-1.el7.x86_64.rpm
mysql-community-common-5.7.34-1.el7.x86_64.rpm  mysql-community-server-5.7.34-1.el7.x86_64.rpm

# 必須按照順序執行安裝操作
[root@mysql-multi ~]# rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm
[root@mysql-multi ~]# rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

[root@mysql-multi ~]# yum list installed | grep mysql
mysql-community-client.x86_64        5.7.34-1.el7                      installed
mysql-community-common.x86_64        5.7.34-1.el7                      installed
mysql-community-libs.x86_64          5.7.34-1.el7                      installed
mysql-community-server.x86_64        5.7.34-1.el7                      installed

# 建立例項目錄
[root@mysql-multi ~]# mkdir -p /data/app/mysql/{3306,3307}
[root@mysql-multi ~]# mkdir -p /data/app/mysql/3306/{data,binlog,logs}
[root@mysql-multi ~]# mkdir -p /data/app/mysql/3307/{data,binlog,logs}
[root@mysql-multi ~]# tree /data/app/mysql/
/data/app/mysql/
├── 3306
│   ├── binlog
│   ├── data
│   └── logs
└── 3307
    ├── binlog
    ├── data
    └── logs

# 設定目錄屬主屬組
[root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql
[root@mysql-multi ~]# ls -ld /data/app/mysql
drwxr-xr-x. 4 mysql mysql 30 Jul 29 18:39 /data/app/mysql
[root@mysql-multi ~]# ls -ld /data/app
drwxr-xr-x. 3 root root 19 Jul 29 18:39 /data/app

# 新增配置檔案my3306.cnf
[root@mysql-multi ~]# mv /etc/my.cnf /etc/my.cnf_bak
[root@mysql-multi ~]# cat /etc/my3306.cnf
[mysqld]
user = mysql
port = 3306
server_id = 3306
datadir = /data/app/mysql/3306/data
socket = /data/app/mysql/3306/mysql3306.sock
symbolic-links = 0
log-error = /data/app/mysql/3306/logs/mysqld3306.log
pid-file = /data/app/mysql/3306/mysqld3306.pid

# 新增配置檔案my3307.cnf
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3307.cnf
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /etc/my3307.cnf
[root@mysql-multi ~]# cat /etc/my3307.cnf
[mysqld]
user = mysql
port = 3307
server_id = 3307
datadir = /data/app/mysql/3307/data
socket = /data/app/mysql/3307/mysql3307.sock
symbolic-links = 0
log-error = /data/app/mysql/3307/logs/mysqld3307.log
pid-file = /data/app/mysql/3307/mysqld3307.pid

# 備份mysql啟動服務檔案
[root@mysql-multi ~]# mv /usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/mysqld.service_bak
# 新增mysqld3306.service啟動檔案
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3306.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/app/mysql/3306/mysqld3306.pid
TimeoutSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3306 3306
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

# 新增mysqld3307.service啟動檔案
[root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3307.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/app/mysql/3307/mysqld3307.pid
TimeoutSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3307 3307
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

# 初始化多例項3306,3307
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3306.cnf --initialize --user=mysql --datadir=/data/app/mysql/3306/data
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3307.cnf --initialize --user=mysql --datadir=/data/app/mysql/3307/data

# 啟動多例項3306,3307
[root@mysql-multi ~]# systemctl start mysqld3306
[root@mysql-multi ~]# systemctl start mysqld3307
[root@mysql-multi ~]# netstat -nutpl | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      128270/mysqld
tcp6       0      0 :::3307                 :::*                    LISTEN      128328/mysqld
[root@mysql-multi ~]# ps -ef | grep mysql
mysql    128270      1  1 11:43 ?        00:00:00 /usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql    128328      1  1 11:43 ?        00:00:00 /usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid
root     128373    949  0 11:43 pts/0    00:00:00 grep --color=auto mysql

======================================== 【 再新增一MySQL例項 】===================================================================
# 建立目錄,設定屬主屬組
[root@mysql-multi ~]# mkdir -p /data/app/mysql/3308/{data,binlog,logs}
[root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql/3308
[root@mysql-multi ~]# ls -ld /data/app/mysql/3308
drwxr-xr-x. 5 mysql mysql 44 Aug  5 14:45 /data/app/mysql/3308

# 新增配置檔案my3308.cnf
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3308.cnf
[root@mysql-multi ~]# sed -i 's/3306/3308/g' /etc/my3308.cnf
[root@mysql-multi ~]# cat /etc/my3308.cnf
[mysqld]
user = mysql
port = 3308
server_id = 3308
datadir = /data/app/mysql/3308/data
socket = /data/app/mysql/3308/mysql3308.sock
symbolic-links = 0
log-error = /data/app/mysql/3308/logs/mysqld3308.log
pid-file = /data/app/mysql/3308/mysqld3308.pid

# 新增mysqld3308.service啟動檔案
[root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3308.service
[root@mysql-multi ~]# sed -i 's/3306/3308/g' /usr/lib/systemd/system/mysqld3308.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3308.service
[Unit]
Description=MySQL Server 3308
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/app/mysql/3308/mysqld3308.pid
TimeoutSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3308 3308
ExecStart=/usr/sbin/mysqld --defaults-file=/etc/my3308.cnf --daemonize --pid-file=/data/app/mysql/3308/mysqld3308.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

# 初始化多例項3308
[root@mysql-multi ~]# mysqld --defaults-file=/etc/my3308.cnf --initialize --user=mysql --datadir=/data/app/mysql/3308/data

# 啟動多例項3308
[root@mysql-multi ~]# systemctl start mysqld3308
[root@mysql-multi ~]# netstat -nutpl | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      5062/mysqld
tcp6       0      0 :::3307                 :::*                    LISTEN      5098/mysqld
tcp6       0      0 :::3308                 :::*                    LISTEN      5189/mysqld
[root@mysql-multi ~]# ps -ef |grep mysql
mysql      5062      1  0 14:43 ?        00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql      5098      1  0 14:44 ?        00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid
mysql      5189      1  4 14:57 ?        00:00:01 /usr/sbin/mysqld --defaults-file=/etc/my3308.cnf --daemonize --pid-file=/data/app/mysql/3308/mysqld3308.pid
  • 原始碼編譯安裝方式如下:

  MySQL下載:https://downloads.mysql.com/archives/community

  Boost下載:https://sourceforge.net/projects/boost/files/boost/1.59.0

  MySQL多例項:https://dev.mysql.com/doc/refman/5.7/en/multiple-servers.html

# 依賴包和編譯軟體
[root@mysql-multi ~]# yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel libaio-devel wget lrzsz tree
[root@mysql-multi ~]# rpm -qa ncurses-devel libaio-devel
libaio-devel-0.3.109-13.el7.x86_64
ncurses-devel-5.9-14.20130511.el7_4.x86_64

# 下載上傳原始碼包並解壓編譯安裝(最好記憶體>8G)
ls[root@mysql-multi ~]# ls
boost_1_59_0.tar.gz  mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# tar xf boost_1_59_0.tar.gz
[root@mysql-multi ~]# tar xf mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# ls
boost_1_59_0  boost_1_59_0.tar.gz  mysql-5.7.34  mysql-boost-5.7.34.tar.gz
[root@mysql-multi ~]# cd mysql-5.7.34/
[root@mysql-multi mysql-5.7.34]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8mb4 \
-DENABLED_LOCAL_INFILE=1 -DWITH_SYSTEMD=1 -DWITH_BOOST=/root/boost_1_59_0 -DEXTRA_CHARSETS=all
......
......最末尾顯示如下內容,則完成
-- CMAKE_SHARED_LINKER_FLAGS
-- Configuring done
-- Generating done
-- Build files have been written to: /root/mysql-5.7.34

選項說明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    # mysql安裝目錄
-DDEFAULT_CHARSET=utf8mb4             # 資料庫預設字元編碼
-DENABLED_LOCAL_INFILE=1             # 允許從本檔案匯入資料
-DWITH_SYSTEMD=1                 # 提供systemd指令碼
-DWITH_BOOST=/root/boost_1_59_0         # boost源路徑
-DEXTRA_CHARSETS=all               # 安裝所有字符集

[root@mysql-multi mysql-5.7.34]#make -j 4 && make install    # make -j 4 表示用CPU4核心同時進行編譯:cat /proc/cpuinfo|grep "processor"|wc -l
......
......最末尾顯示如下內容,則完成
-- Up-to-date: /usr/local/app/mysql/mysql-test/mysql-test-run
-- Installing: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Up-to-date: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/my_safe_process
-- Installing: /usr/local/app/mysql/mysql-test/lib/My/SafeProcess/Base.pm
-- Installing: /usr/local/app/mysql/support-files/mysqld_multi.server
-- Installing: /usr/local/app/mysql/support-files/mysql-log-rotate
-- Installing: /usr/local/app/mysql/support-files/magic
-- Installing: /usr/local/app/mysql/share/aclocal/mysql.m4
-- Installing: /usr/local/app/mysql/support-files/mysql.server

# 建立例項目錄
[root@mysql-multi ~]# mkdir -p /data/app/mysql/{3306,3307}/{data,binlog,logs}
[root@mysql-multi ~]# tree /data/app/mysql
/data/app/mysql
├── 3306
│   ├── binlog
│   ├── data
│   └── logs
└── 3307
    ├── binlog
    ├── data
    └── logs

# 建立使用者,設定目錄屬主屬組
[root@mysql-multi ~]# useradd -M -r -s /sbin/nologin mysql
[root@mysql-multi ~]# chown -R mysql:mysql /data/app/mysql
[root@mysql-multi ~]# ls -ld /data/app/mysql
drwxr-xr-x. 4 mysql mysql 30 Aug  5 12:17 /data/app/mysql

# 新增配置檔案my3306.cnf
[root@mysql-multi ~]# mv /etc/my.cnf /etc/my.cnf_bak
[root@mysql-multi ~]# cat /etc/my3306.cnf
[mysqld]
user = mysql
port = 3306
server_id = 3306
basedir = /usr/local/mysql
datadir = /data/app/mysql/3306/data
socket = /data/app/mysql/3306/mysql3306.sock
symbolic-links = 0
log-error = /data/app/mysql/3306/logs/mysqld3306.log
pid-file = /data/app/mysql/3306/mysqld3306.pid
character_set_server = utf8
default-storage-engine = INNODB

# 新增配置檔案my3307.cnf
[root@mysql-multi ~]# cp /etc/my3306.cnf /etc/my3307.cnf
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /etc/my3307.cnf
[root@mysql-multi ~]# cat /etc/my3307.cnf
[mysqld]
user = mysql
port = 3307
server_id = 3307
basedir = /usr/local/mysql
datadir = /data/app/mysql/3307/data
socket = /data/app/mysql/3307/mysql3307.sock
symbolic-links = 0
log-error = /data/app/mysql/3307/logs/mysqld3307.log
pid-file = /data/app/mysql/3307/mysqld3307.pid
character_set_server = utf8
default-storage-engine = INNODB

# 安裝後規範化操作(設定環境變數、輸出標頭檔案和庫檔案、設定man路徑)
[root@mysql-multi ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile.d/mysql.sh
[root@mysql-multi ~]# chmod +x /etc/profile.d/mysql.sh
[root@mysql-multi ~]# source /etc/profile.d/mysql.sh
[root@mysql-multi ~]# echo "MANPATH /usr/local/mysql/man" >>/etc/man.config
[root@mysql-multi ~]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
[root@mysql-multi ~]# ldconfig
[root@mysql-multi ~]# ln -s /usr/local/mysql/include /usr/include/mysql

# 新增例項3306,3307 systemd方式
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3306.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/app/mysql/3306/mysqld3306.pid
TimeoutSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3306 3306
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

[root@mysql-multi ~]# cp /usr/lib/systemd/system/mysqld3306.service /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# sed -i 's/3306/3307/g' /usr/lib/systemd/system/mysqld3307.service
[root@mysql-multi ~]# cat /usr/lib/systemd/system/mysqld3307.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/data/app/mysql/3307/mysqld3307.pid
TimeoutSec=0
PermissionsStartOnly=true
#ExecStartPre=/usr/bin/mysqld_pre_systemd_3307 3307
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

# 初始化例項3306,3307
[root@mysql-multi ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --initialize --basedir=/usr/local/mysql --user=mysql --datadir=/data/app/mysql/3306/data
[root@mysql-multi ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --initialize --basedir=/usr/local/mysql --user=mysql --datadir=/data/app/mysql/3307/data

# 啟動例項3306,3307服務 (start|stop|restart|status)
[root@mysql-multi ~]# systemctl start mysqld3306
[root@mysql-multi ~]# systemctl start mysqld3307
[root@mysql-multi ~]# netstat -nuptl | grep mysql
tcp6       0      0 :::3306                 :::*                    LISTEN      27165/mysqld
tcp6       0      0 :::3307                 :::*                    LISTEN      27201/mysqld
[root@mysql-multi ~]# ps -ef | grep mysql
mysql     27165      1  2 17:03 ?        00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf --daemonize --pid-file=/data/app/mysql/3306/mysqld3306.pid
mysql     27201      1  2 17:03 ?        00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3307.cnf --daemonize --pid-file=/data/app/mysql/3307/mysqld3307.pid

 修改MySQL例項密碼並測試登入。

# 獲取例項初始密碼
[root@mysql-multi ~]# grep 'temporary password' /data/app/mysql/3306/logs/mysqld3306.log
2021-08-05T08:52:37.904630Z 1 [Note] A temporary password is generated for root@localhost: ,&YrsLryq3Ll

[root@mysql-multi ~]# grep 'temporary password' /data/app/mysql/3307/logs/mysqld3307.log
2021-08-05T08:52:48.082526Z 1 [Note] A temporary password is generated for root@localhost: OvxKu,su=4O1

# 修改例項密碼
[root@mysql-multi ~]# mysqladmin -p -S /data/app/mysql/3306/mysql3306.sock password
Enter password:  # 輸入初始密碼
New password:   # 輸入新密碼  123456
Confirm new password:  # 再次輸入新密碼  123456

--------------------------------------------------------------------------------------
# 或
shell> mysql -uroot -p /data/app/mysql/3306/mysql3306.sock
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
--------------------------------------------------------------------------------------

[root@mysql-multi ~]# mysqladmin -p -S /data/app/mysql/3306/mysql3307.sock password
Enter password:  # 輸入初始密碼
New password:   # 輸入新密碼  654321
Confirm new password:  # 再次輸入新密碼  654321

# 測試登入
[root@mysql-multi ~]# mysql -uroot -p -S /data/app/mysql/3306/mysql3306.sock
Enter password:  # 輸入密碼  123456
[root@mysql-multi ~]# mysql -uroot -p -S /data/app/mysql/3307/mysql3307.sock
Enter password:  # 輸入密碼  654321

# 停止例項
[root@mysql-multi ~]# mysqladmin -uroot -p -S /data/app/mysql/3306/mysql3306.sock shutdown
Enter password:  # 輸入密碼  123456
[root@mysql-multi ~]# mysqladmin -uroot -p -S /data/app/mysql/3307/mysql3307.sock shutdown
Enter password:  # 輸入密碼  654321

至此,MySQL多例項已經實現!

 

相關文章