天天看點

原有環境部署多個版本(下)

三.Mysql-5.7單獨部署

1.修改配置檔案,先單獨部署5.7。目前已經運作了一個資料庫,那将/etc/my.cfn原有配置拷貝的一旁,等後面再用。

cp -p /etc/my.cnf /tmp/my.cnf.bak

原原來的删除,先将5.7初始化再說

vim /etc/my.cnf

  1. [mysqld_safe]

  2. nice =

  3. pid-file =

    /data/seven/mysqld.pid

  4. [mysqld]

  5. bind-address =

    0.0.0.0

  6. user = mysql

  7. basedir =

    /usr/local/mysql-5.7

  8. datadir =

    /data/seven

  9. socket =

    /data/seven/mysql.sock

  10. port =

    3307

  11. log-error =

    /data/seven/mysql.log

2.初始化

/usr/local/mysql-5.7/bin/mysqld --initialize --user=mysql --datadir=/data/seven --basedir=/usr/local/mysql-5.7

沒有任何輸出就是成功了

四.啟動Mysql-5.7

這裡将原有的5.6和新的5.7都納入multi的管理

1.添加多版本控制

vim /etc/my.cnf

  1. [mysql]

    #用戶端

  2. default-character-set=utf8mb4

  3. [mysqld_multi]

  4. #填寫任意一個版本的位置就行

  5. mysqld =

    /usr/local/mysql-5.6/bin/mysqld_safe

  6. mysqladmin =

    /usr/local/mysql-5.6/bin/mysqladmin

  7. #multi的日志

  8. log =

    /tmp/mysql_multi.log

  9. user = multi #在每個賬号設定一個賬戶,有管理權限的,讓multi可以控制資料庫的關閉重新開機

  10. password = multiadmin

  11. #3306這個是原有的配置,這裡整個拷貝過來即可

  12. [mysqld3306]

  13. port =

    3306

  14. socket=/usr/local/mysql/mysql.sock

  15. basedir=/usr/local/mysql

  16. datadir=/usr/local/mysql/data

  17. max_connection=200

  18. character-set-server=utf8

  19. default-storage-engine=INNODB

  20. lower_case_table_name=1

  21. max_allowed_packet=16M

  22. log-error=/var/log/mysql/mysql.log

  23. pid-file=/var/log/mysql/mysql.pid

  24. bind-address =

    0.0.0.0

  25. #3307的,多加了一個pid-file。

  26. [mysqld3307]

  27. #跳過密碼,因為5.7密碼寫到日志裡了,但這裡沒看到

  28. skip-grant-tables

  29. bind-address =

    0.0.0.0

  30. user = mysql

  31. basedir =

    /usr/local/mysql-5.7

  32. datadir =

    /data/seven

  33. socket =

    /data/seven/mysql.sock

  34. port =

    3307

  35. log-error =

    /data/seven/mysql.log

  36. pid-file =

    /data/seven/mysqld.pid

2.使用multi,這是一個管理的bash腳本,将他複制過來

cp /usr/local/mysql-5.7/support-files/mysqld_multi.server /etc/init.d/

chmod +x /etc/init.d/mysqld_multi.server

要修改一下腳本,預設目錄不符合目前的配置

vim /etc/init.d/mysqld_multi.server

basedir=/usr/local/mysql-5.6bindir=/usr/local/mysql-5.6/bin           

複制

3.使用

檢視配置的3006和3307是否識别到了

/etc/init.d/mysqld_multi.server report

這裡可以看到3306是已經啟動的

原有環境部署多個版本(下)

啟動單獨的3307端口

/etc/init.d/mysqld_multi.server start 3307

已經啟動了

原有環境部署多個版本(下)

驗證

netstat -unltp | grep :3306

netstat -unltp | grep :3307

連接配接

mysql -S /data/seven/mysql.sock

也可以用ip+端口的方式連接配接,如果用socket連接配接,那端口和ip就沒意義了。使用的将是本地登陸

mysql -uroot -P3307 -h127.0.0.1

連接配接修改,這裡要和上面不同,5.7版本有點小差别

mysql -uroot -P3307 --socket=/data/seven/mysql.sock

mysql>

use mysql;

mysql>

UPDATE user SET authentication_string=PASSWORD("123456") WHERE user='root';

五.muliti使用

啟動全部執行個體:

/usr/local/mysql/bin/mysqld_multi start

檢視全部執行個體狀态:

/usr/local/mysql/bin/mysqld_multi report

啟動單個執行個體:

/usr/local/mysql/bin/mysqld_multi start 3306

停止單個執行個體:

/usr/local/mysql/bin/mysqld_multi stop 3306

檢視單個執行個體狀态:

/usr/local/mysql/bin/mysqld_multi report 3306