在Linux上安裝mysql5.5

在Linux上安裝mysql5.5

開頭廢話

我現在在用的是Manjaro, 其實可以通過pacman自動安裝mysql, 但是pacman會安裝最新版的mysql, 在2019年7月1日的今天是8.0.16, 那爲什麼不直接使用這個版本反而自找麻煩去手動安裝5.5的mysql呢?主要是基於3點考慮:

  1. 最新版對系統配置要求比5.5版高很多
  2. 新版的穩定性和兼容性沒有5.5版的好
  3. 最重要的是我安裝最新版初始化後會提示缺少GLIBCXX_3.4.26, 而pacman安裝的最新版的gcc8.3.0只提供到3.4.25, 還要手動去編譯安裝gcc9.1.0,更麻煩.

接下來就是寫這篇文章的初衷了, 按說網絡上多的是在Linux上安裝mysql的文章, 可是我起碼找了有十幾篇文章, 按照裏面的方法一個個試下來都無法安裝成功, 沒得辦法就想到去官網啃英文文檔, 按照裏面的步驟果然成功安裝, 所以就參考官方把安裝和啓動步驟寫下來以備不時之需.

安裝步驟

  1. 下載mysql5.5二進制安裝包, 我選擇的版本是5.5.55, 就以這個版本爲例:
shell> cd ~/downloads
shell> wget https://downloads.mysql.com/archives/get/file/mysql-5.5.55-linux2.6-i686.tar.gz

其他版本可以進入以下網址下載:

https://downloads.mysql.com/archives/community/
  1. 解壓縮
shell> tar -xzvf mysql-5.5.55-linux2.6-i686.tar.gz		//解包
shell> sudo mv mysql-5.5.55-linux2.6-x86_64 /opt		//一般的約定opt目錄用於安裝第三方應用
  1. 創建mysql用戶
shell> sudo groupadd mysql		//創建數據庫用戶組
shell> sudo useradd -r -g mysql mysql		//創建數據庫用戶
shell> cd /opt/mysql		//進入到mysql目錄下
shell> sudo chown -R mysql .		//變更mysql目錄的所屬用戶
shell> sudo chgrp -R mysql .		//變更mysql目錄的所屬用戶組
  1. 初始化mysql
shell> sudo scripts/mysql_install_db --user=mysql		//通過自帶安裝腳本安裝mysql(目前試過只有這種方法才能安裝成功)
shell> sudo chown -R root .		//收回mysql目錄的所有權
shell> sudo chown -R mysql data		//因爲使用mysql過程中需要訪問data目錄,所以需要保留該目錄的所有權

ps. 上面第一步有可能遇到找不到libaio.so.1這個錯誤,可以通過apt安裝libaio-dev解決
ps. mysql5.7版以前不能用mysqld --initialize初始化

  1. 修改配置文件
shell> sudo vim support-files/my-huge.cnf		//大型數據庫的配置文件,下面設置開機啓動要用到

把socket值改爲:socket= /var/run/mysqld/mysql.sock

shell> sudo cp support-files/my-huge.cnf /etc/my.cnf
  1. 啓動mysql服務(以下三種任選一種即可)
shell> sudo bin/mysqld_safe --user=mysql &		//官方推薦的安全啓動模式
shell> sudo bin/mysqld --user=mysql		//普通啓動模式
shell> sudo support-files/mysql.service start		//通過服務啓動
  1. 關閉mysql服務
shell> sudo support-files/mysql.service stop		//目前嘗試過只有這種方法好用
  1. 如果出現錯誤提示“my_print_defaults: not found”,需要在my.cnf配置文件的[mysqld]項加入basedir和datadir變量的設置,我的設置如下:
[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
  1. 設置開機啓動
    1. 創建systemd服務文件
    sudo vim /etc/systemd/system/mysql.service
    
    1. 編輯systemd服務文件
    [Unit]
    Description=MySQL Server
    After=syslog.target
    After=network.target
    [Service]
    Type=simple
    PermissionsStartOnly=true
    ExecStartPre=/bin/mkdir -p /var/run/mysqld
    ExecStartPre=/bin/chown mysql:mysql -R /var/run/mysqld
    ExecStart=/opt/mysql/bin/mysqld --basedir=/opt/mysql/ --datadir=/opt/mysql/data --plugin-dir=/opt/mysql/plugin --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306
    TimeoutSec=300
    PrivateTmp=true
    User=mysql
    Group=mysql
    WorkingDirectory=/opt/mysql
    [Install]
    WantedBy=multi-user.target
    
    1. 激活開機自啓動
    shell> systemctl enable mysql.service
    
  2. 設置環境變量
echo 'export MYSQL_HOME=/opt/mysql' >>/etc/profile
echo 'export PATH=\$PATH:\$MYSQL_HOME/bin' >>/etc/profile
  1. 修改root密碼
mysql -uroot
use mysql;
update user set password = password('root') where user = 'root';

or

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章