<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          [mysql]linux安裝多個(gè)mysql,以及systemctl配置mysql實(shí)戰(zhàn)

          共 6031字,需瀏覽 13分鐘

           ·

          2021-04-04 08:37

          0ec35c04b3c2eceea5f0f7804cfab768.webp



          環(huán)境

          Linux?CentOS7.0mysqlmysql5.7安裝方式?tar.gz二進(jìn)制安裝包


          背景

          由于需要多個(gè)數(shù)據(jù)庫(kù)來(lái)做mysql集群。而多個(gè)mysql在windows上安裝可以指定各種配置,而在linux由于使用yum安裝的mysql,雖然安裝很方便。各種文件配置以及路徑不好由自己控制,不太好安裝多個(gè)mysql。

          所以本文不適用yum自動(dòng)安裝msyql。而使用二進(jìn)制包手動(dòng)指定各種配置來(lái)安裝msyql,而自動(dòng)安裝的mysql默認(rèn)加載到systemctl管理,手動(dòng)的則么有,本文也詳細(xì)的解說(shuō)了mysql如何自定義service 加載的systemctl(如果不了解systemctl機(jī)制,可跳轉(zhuǎn)到我上一篇博文)。


          mysql安裝

          安裝路徑主mysql:/xinyuan/mysql_m從mysql:/xinyuan/mysql_s

          前提工作


          wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz


          tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz


          mv mysql-5.7.26-linux-glibc2.12-x86_64  /xinyuan/mysql_m

          本文的mysql安裝路徑上上訴已經(jīng)說(shuō)明


          gourpadd mysql
          useradd -r -g mysql mysql

          mysql(mysql_m)的安裝

          1. 創(chuàng)建mysql數(shù)據(jù)目錄(本文將數(shù)據(jù)目錄放入mysql路徑中),并給數(shù)據(jù)目錄賦予權(quán)限

          cd  /xinyuan/mysql_m
          mkdir -p data
          mkdir -p tmp

          2. 賦予權(quán)限

          這塊必須給文件賦權(quán)限,因?yàn)閙syql需要這幾個(gè)目錄讀寫(xiě)文件

          sudo chown mysql:mysql -R /xinyuan/mysql_m/data/
          sudo chown mysql:mysql -R /xinyuan/mysql_m/tmp/

          3. 配置配置文件

          一般mysql的默認(rèn)配置文件都在/etc/my.cnf。本文將my.cnf放入mysql路徑中

          vim /xinyuan/mysql_m/my.cnf

          配置文件內(nèi)容

          [mysqld]
          # bind-address=127.0.0.1 # mysql的監(jiān)聽(tīng)地址,如果想要遠(yuǎn)程訪問(wèn),就把這行注釋掉
          server-id = 1 # # 表示是本機(jī)的序號(hào)為1,一般來(lái)講就是master的意思
          port=3306 # 端口號(hào)
          user=mysql # mysql以什么用戶(hù)運(yùn)行
          basedir=/xinyuan/mysql_m # MySQL 的安裝路徑
          datadir=/xinyuan/mysql_m/data # MySQL 數(shù)據(jù)文件的存儲(chǔ)位置,也是數(shù)據(jù)表的存放位置
          socket=/xinyuan/mysql_m/tmp/mysql.sock # mysql以socket方式運(yùn)行的sock文件位置
          log-error=/xinyuan/mysql_m/data/mysql.err # 錯(cuò)誤日志位置
          pid-file=/xinyuan/mysql_m/data/mysql.pid # 進(jìn)程id文件
          #character config
          character_set_server=utf8mb4 # 服務(wù)器使用的字符集
          symbolic-links=0 # 是否支持符號(hào)鏈接,即數(shù)據(jù)庫(kù)或表可以存儲(chǔ)在my.cnf中指定datadir之外的分區(qū)或目錄,為0不開(kāi)啟
          tmpdir=/xinyuan/mysql_m/tmp # #mysql默認(rèn)配置得緩存目錄 默認(rèn)是/tmp


          [mysql]
          socket=/xinyuan/mysql_m/tmp/mysql.sock

          4. 初始化mysql

          這塊指定默認(rèn)加載的mysql配置文件

          cd /xinyuan/mysql_m/bin
          ./mysqld --defaults-file=/xinyuan/mysql_m/my.cnf --user=mysql --initialize

          mysql(mysql_s)的安裝

          與上面的mysql_m相同,只不過(guò)端口、安裝路徑以及配置文件里面的路徑有變化

          1. 創(chuàng)建mysql數(shù)據(jù)目錄(本文將數(shù)據(jù)目錄放入mysql路徑中),并給數(shù)據(jù)目錄賦予權(quán)限

          cd  /xinyuan/mysql_s
          mkdir -p data
          mkdir -p tmp

          2. 賦予權(quán)限

          這塊必須給文件賦權(quán)限,因?yàn)閙syql需要這幾個(gè)目錄讀寫(xiě)文件

          sudo chown mysql:mysql -R /xinyuan/mysql_s/data/
          sudo chown mysql:mysql -R /xinyuan/mysql_s/tmp/

          3. 配置配置文件

          一般mysql的默認(rèn)配置文件都在/etc/my.cnf。本文將my.cnf放入mysql路徑中

          vim /xinyuan/mysql_s/my.cnf

          配置文件內(nèi)容

          [mysqld]
          # bind-address=127.0.0.1 # mysql的監(jiān)聽(tīng)地址,如果想要遠(yuǎn)程訪問(wèn),就把這行注釋掉
          server-id = 2 # # 表示是本機(jī)的序號(hào)為1,一般來(lái)講就是master的意思
          port=3307 # 端口號(hào)
          user=mysql # mysql以什么用戶(hù)運(yùn)行
          basedir=/xinyuan/mysql_s # MySQL 的安裝路徑
          datadir=/xinyuan/mysql_s/data # MySQL 數(shù)據(jù)文件的存儲(chǔ)位置,也是數(shù)據(jù)表的存放位置
          socket=/xinyuan/mysql_s/tmp/mysql.sock # mysql以socket方式運(yùn)行的sock文件位置
          log-error=/xinyuan/mysql_s/data/mysql.err # 錯(cuò)誤日志位置
          pid-file=/xinyuan/mysql_s/data/mysql.pid # 進(jìn)程id文件
          #character config
          character_set_server=utf8mb4 # 服務(wù)器使用的字符集
          symbolic-links=0 # 是否支持符號(hào)鏈接,即數(shù)據(jù)庫(kù)或表可以存儲(chǔ)在my.cnf中指定datadir之外的分區(qū)或目錄,為0不開(kāi)啟
          tmpdir=/xinyuan/mysql_s/tmp # #mysql默認(rèn)配置得緩存目錄 默認(rèn)是/tmp


          [mysql]
          socket=/xinyuan/mysql_s/tmp/mysql.sock

          4. 初始化mysql

          這塊指定默認(rèn)加載的mysql配置文件

          cd /xinyuan/mysql_s/bin
          ./mysqld --defaults-file=/xinyuan/mysql_s/my.cnf --user=mysql --initialize

          編寫(xiě)msyql主從的啟動(dòng)腳本

          腳本目錄 /xinyuan/mysql_shell

          mysql_m的腳本

          vim /xinyuan/mysql_shell/mysql_m.sh腳本內(nèi)容

          #!/bin/bash
          d=`date "+%y-%m/%d %H:%M:%S"`
          echo "$1$d"

          if [ $1 = "start" ]; then
          echo "$d mysql_m start "
          nohup /xinyuan/mysql_m/bin/mysqld --defaults-file=/xinyuan/mysql_m/my.cnf --user=mysql >> mysql_m.log 2>&1 &

          elif [ $1 = "stop" ]; then
          echo "$d mysql_m stop"
          # 方法一:利用mysqladmin,但是這種方法需要用戶(hù)名和輸入密碼
          # /xinyuan/mysql_m/bin/mysqladmin shutdown -proot
          # 方法二:直接關(guān)閉進(jìn)程kill -9 [mysql的進(jìn)程號(hào)]
          mysql_m=`ps -ef|grep mysql_m |grep -v 'grep\|stop' | awk '{print $2}' `
          kill -15 $mysql_m
          else
          echo "輸入錯(cuò)誤,請(qǐng)檢查重新輸入"
          fi

          賦予權(quán)限

          chmod 777 mysql_m.sh

          啟動(dòng)停止命令

          ./mysql_m.sh start
          ./mysql_m.sh stop

          mysql_s的腳本

          vim /xinyuan/mysql_shell/mysql_s.sh腳本內(nèi)容

          #!/bin/bash
          d=`date "+%y-%m/%d %H:%M:%S"`
          echo "$1$d"

          if [ $1 = "start" ]; then
          echo "$d mysql_s start "
          nohup /xinyuan/mysql_s/bin/mysqld --defaults-file=/xinyuan/mysql_s/my.cnf --user=mysql >> mysql_m.log 2>&1 &

          elif [ $1 = "stop" ]; then
          echo "$d mysql_s stop"
          # 方法一:利用mysqladmin,但是這種方法需要用戶(hù)名和輸入密碼
          # /xinyuan/mysql_s/bin/mysqladmin shutdown -proot
          # 方法二:直接關(guān)閉進(jìn)程kill -9 [mysql的進(jìn)程號(hào)]
          mysql_s=`ps -ef|grep mysql_s |grep -v 'grep\|stop' | awk '{print $2}' `
          kill -15 $mysql_s
          else
          echo "輸入錯(cuò)誤,請(qǐng)檢查重新輸入"
          fi

          賦予權(quán)限

          chmod 777 mysql_s.sh

          啟動(dòng)停止命令

          ./mysql_s.sh  start
          ./mysql_s.sh stop

          將mysql加入systemctl管理,并設(shè)置關(guān)機(jī)保護(hù)

          mysql_m

          1. 創(chuàng)建.service文件路徑
          /usr/lib/systemd/system/
          2. 創(chuàng)建mysql_m啟動(dòng)文件.service結(jié)尾

          vim /usr/lib/systemd/system/mysql_m.service文件配置內(nèi)容,具體的文件配置的說(shuō)明,請(qǐng)查看我上一篇systemctl的博文

          [Unit]
          Description=Mysql_m
          SourcePath=/xinyuan/mysql_shell
          Before=shutdown.target

          [Service]
          User=root
          Type=forking
          ExecStart=/xinyuan/mysql_shell/mysql_m.sh start
          ExecStop=/xinyuan/mysql_shell/mysql_m.sh stop

          [Install]
          WantedBy=multi-user.target
          3. systemctl配置刷新
          systemctl daemon-reload
          4. 啟動(dòng)mysql_m服務(wù)
          systemctl start mysql_m.service
          5. 查看mysql_m啟動(dòng)狀態(tài)
          systemctl status mysql_m.service

          active(runnint)?代表啟動(dòng)成功

          f691c119a3a0a145bfc01f468b008945.webp

          6. 如果失敗,可以查看systemctl日志
          journalctl -f |grep mysql_m

          mysql_s

          1. 創(chuàng)建.service文件路徑
          /usr/lib/systemd/system/
          2. 創(chuàng)建mysql_m啟動(dòng)文件.service結(jié)尾

          vim /usr/lib/systemd/system/mysql_s.service文件配置內(nèi)容,具體的文件配置的說(shuō)明,請(qǐng)查看我上一篇systemctl的博文

          [Unit]
          Description=Mysql_s
          SourcePath=/xinyuan/mysql_shell
          Before=shutdown.target

          [Service]
          User=root
          Type=forking
          ExecStart=/xinyuan/mysql_shell/mysql_s.sh start
          ExecStop=/xinyuan/mysql_shell/mysql_s.sh stop

          [Install]
          WantedBy=multi-user.target
          3. systemctl配置刷新
          systemctl daemon-reload
          4. 啟動(dòng)mysql_s服務(wù)
          systemctl start mysql_s.service
          5. 查看mysql_s啟動(dòng)狀態(tài)
          systemctl status mysql_s.service

          active(runnint)?代表啟動(dòng)成功

          0259f5447641d6be22e3e7412b007869.webp

          6. 如果失敗,可以查看systemctl日志
          journalctl -f |grep mysql_s

          結(jié)果

          最后運(yùn)行?ps -ef|grep mysql,可以看到兩個(gè)mysql都運(yùn)行在了linux,大功告成

          39d68219e7fff98f816cd15ce6b94d10.webp


          其他

          登錄密碼

          第一次初始化mysql之后密碼是默認(rèn)的。默認(rèn)密碼通過(guò) data/mysql.err查看

          641d177745e44fa622a5368becf031bc.webp

          修改默認(rèn)密碼

          切換到bin目錄然后運(yùn)行(由于我們sock文件制定到mysql目錄下的tmp下,所以我們需要加上-S參數(shù)指定連接sock)

          ./mysql -uroot -p -S ../tmp/mysql.sock

          輸入密碼,然后進(jìn)入mysql控制臺(tái),然后更改密碼

          ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

          遠(yuǎn)程鏈接配置

          將root設(shè)置為任何ip都能拿他登錄

          use mysql;
          update user set host = '%' where user = 'root';

          然后重啟mysql即刻遠(yuǎn)程鏈接

          ??????????????????????????????作者在留言區(qū)等你喲

          瀏覽 81
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲欧洲小视频 | 免费成人做爱视频 | 2024久久国产精品视频 | 亚洲无码我不卡 | 日韩精品不卡 |