ubuntu安裝mysql多實例


想要嘗試mysql的讀寫分離,在雲上安裝完mysql之后突然想到一個問題:我本機是沒有公網IP的。

開始嘗試在唯一一台雲服務器上安裝多個mysql實例。

主要步驟:

1.新建MySQL目錄

(1):新建實例目錄: /data/mysql/mysql_3307

(2):賦權:chown -R mysql.mysql  /data/mysql/mysql_3307

(3):在apparmor中配置對目錄文件的訪問權限

vim /etc/apparmor.d/usr.sbin.mysqld

/data/mysql/mysql_3307/ r,

/data/mysql/mysql_3307/** rwk,

 

 
apparmor配置

 刷新: service apparmor restart

2.復制多個MySQL配置文件

mysql啟動時會讀取配置文件my.cnf,要配置多個實例需要復制多個my.cnf配置文件。在mysql5.7版本中

/etc/mysql/目錄下的my.cnf文件是個軟鏈接,關聯的是/etc/mysql/mysql.conf.d目錄下的mysqld.cnf文件,配置信息全部在mysqld.cnf中,所以可以直接復制mysqld.cnf命名為mysqld_3307.cnf作為啟動配置文件。

修改mysqld_3307.cnf配置

 
配置文件修改

 

 
配置文件修改

 

端口port: port=3307

socket      socket=/data/mysql/mysql_3307/mysqld.sock

pid-file    pid-file=/data/mysql/mysql_3307/mysqld.pid

datadir      datadir=/data/mysql/mysql_3307

log_error    log_error=/data/mysql/mysql_3307/error.log

注釋掉nice =0  #nice = 0

注釋掉bind-address方便從本地訪問        #bind-address          = 127.0.0.1

保存。

3.初始化MySQL文件

mysql_install_db --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf --basedir=/usr/ --datadir=/data/mysql/mysql_3307 --user=mysql

執行完成后mysql文件會被初始化到datadir目錄下

 
實例文件

(

    5.7版本初始化的時候相比5.6 會有一些不同,之前在初始化第三個實例的時候報錯:

    2111:29:05[WARNING]mysql_install_db is deprecated. Please consider switching to mysqld --initialize

    可以看到mysql_install_db is deprecated,mysql_install_db被棄用。推薦使用的方法:

    mysqld --initialize 

    正確的初始方式如下:mysqld --initialize --user=mysql --basedir=/usr  --datadir=/data/mysql/mysql_3307

)

啟動實例: mysqld_safe --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf --skip-grant-tables &

先通過安全模式啟動實例,跳過安全認證登錄后修改root密碼

無密碼登錄:mysql -S /data/mysql/mysql_3307/mysqld.sock -P 3307

修改密碼:

mysql> update user set authentication_string=password('******') where user='root'

mysql> flush privileges;

mysql> quit

重新啟動,然后通過root密碼登錄。

關閉實例:

mysqladmin -u root -p -S /data/mysql/mysql_3307/mysqld.sock shutdown

啟動實例:

mysqld_safe --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf  &

登錄實例:

mysql -S /data/mysql/mysql_3307/mysqld.sock -P 3307 -u root -p

登錄后執行命令的時候提示錯誤:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this start

解決辦法,設置密碼:set password="YOUR_PASSWORD"。

至此單個實例安裝完成,需要安裝不同實例只需要復制多個mysqld.cnf配置文件,建多個目錄按以上步驟操作。

4.設置MySQL實例可以從本地navicate訪問

本地navicate連接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM