Deepin安裝MySQL8

Deepin安裝MySQL8

千霜   2019-06-19 18:52:42     4096     收藏   7
分類專欄:   linux   文章標籤:   deepin   mysql   8
版權

官方網站給出了多種安裝方式, 如源碼安裝,壓縮包安裝, 二進制安裝(如.deb文件). 儘管可以通過包管理器 (如apt,yum) 來安裝, 可能安裝的並不是最新版的. 如果使用官方倉庫源, 也不能保證兼容性.

因此這裏使用壓縮包方式安裝MySQL8, 它適用於大多數發行版. 這裏本系統爲Deepin.

  1. 環境預處理: 安裝前, 先刪除原有mysql, 和配置,數據等文件, 如/etc/my.cnf/etc/mysql/

  2. MySQL依賴: mysql依賴於libaio庫, 安裝前先檢查下是否已安裝, 一般情況都有

    #檢查是否已安裝, 看是否提示已安裝
    apt search libaio
    #安裝
    apt install libaio1 #爲啥多了個1? 因爲倉庫中名字就是這個..
    
    • 1
    • 2
    • 3
    • 4
  3. 下載: 通過瀏覽器下載, 地址:Download MySQL Community Server; 或使用curl下載, 如下所示

    curl -L  https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz -O
    
    • 1
  4. 解壓: 解壓後, 可以憑自己喜好存於某個位置

    tar -xJvf Downloads/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
    
    • 1
  5. 創建mysql用戶: 官網建議, 以非root用戶運行mysqld, 有助於安全性. 這裏創建了mysql用戶

    # 創建一個不能登錄的系統用戶mysql, 默認也創建了組
    useradd -r -s /bin/false mysql
    
    • 1
    • 2
  6. 初始化mysqld : 在這個過程中會建立root用戶, 生成權限表等, 並存入數據目錄中, 如果不存在會自動生成, 經測試爲data目錄, 而不是官方說的mysql-files(這是一個坑)! 初始化有以下兩種方式:

    mysqld就是mysql服務端程序, 這裏就是初始化該程序.

    下面我們會通過--user指定mysqld以mysql身份運行, 由於切換身份需要root權限, 所以還要加上sudo

    該數據目錄是mysqld存放數據庫等文件的地方, 此時該文件夾的擁有者爲mysql, 也就是說mysqld以mysql身份運行時只能寫該目錄內的數據, 大大保證了安全性

    • --initialize: 生成root密碼, 打印在控制檯

      sudo bin/mysqld --initialize --user=mysql
      
      • 1
    • -initialize-insecure: root賬戶無密碼

      bin/mysqld --initialize-insecure --user=mysql
      
      • 1
  7. 運行mysqld : 同樣的, 以mysql身份運行, 這裏的mysqld_safe一個啓動mysqld方便的工具.

    sudo bin/mysqld_safe --user=mysql &
    
    • 1
  8. 修改root密碼: mysql是一個命令行客戶端, 在bin目錄下, 最好設置環境變量, 這裏略.

    #root有密碼的登錄方式
    mysql -u root -p 
    #root無密碼的登錄方式
    mysql -u root --skip-password
    #進入後修改密碼
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    修改完後請關閉msyqld, 怎麼關? 思路是使用ps的到進程號, kill殺死它

  9. 增加安全性(可選) : mysql提供了mysql_secure_installation腳本來配置msyqld安全方面的配置, 功能如

    • 設置root賬戶密碼

    • 阻止外部訪問root賬戶

    • 刪除匿名用戶

    • 等等

      使用後最直觀感受是, 用戶密碼不能是簡單的123456了, 必須複雜… 開發環境下不建議使用.

    #直接運行即可
    mysql_secure_installation
    
    • 1
    • 2
  10. 自啓配置: 我們要自啓的是mysqld, 但是我不熟悉它的配置, 但是它提供了一個mysql.server, 能夠方便的開啓和關閉mysqld. 該腳本被寫死了, 它規定mysql必須存在於/usr/local/下, 目錄名mysql, 這裏我使用符號連接來解決:

    ln -s $PWD/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
    
    • 1

    deepin使用systemd來管理啓動程序的, 它兼容Sys V, 因此也可使用Sys V的方式來讓mysql加入自啓, 如:

    cp support-files/mysql.server /etc/init.d/mysql.server
    
    • 1

    但新時代就用新方法, 這裏通過Systemd的方式加入自啓, 在/usr/lib/systemd/system/目錄下創建配置文件mysqld.service

    [Unit]
    Description=MySQL Server
    After=network.target local-fs.target remote-fs.target
    
    [Service]
    Type=forking
    PIDFile=/usr/local/mysql/data/sidian-PC.pid
    ExecStart=/usr/local/mysql/support-files/mysql.server start
    ExecStop=/usr/local/mysql/support-files/mysql.server stop
    ExecReload=/usr/local/mysql/support-files/mysql.server restart
    User=mysql
    
    [Install]
    WantedBy=multi-user.target
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    要注意點是, PIDFile的名字一般爲你電腦的域名, 如我的sidian-PC, 通過hostname命令獲取.

    User選項規定mysql以mysql身份運行.

    接下來啓動它

    sudo systemctl enable mysqld.service # 加入自啓
    sudo systemctl start mysqld.service # 現在啓動mysqld
    
    • 1
    • 2

    大功告成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章