官方網站給出了多種安裝方式, 如源碼安裝,壓縮包安裝, 二進制安裝(如.deb
文件). 儘管可以通過包管理器 (如apt
,yum
) 來安裝, 可能安裝的並不是最新版的. 如果使用官方倉庫源, 也不能保證兼容性.
因此這裏使用壓縮包方式安裝MySQL8, 它適用於大多數發行版. 這裏本系統爲Deepin.
-
環境預處理: 安裝前, 先刪除原有mysql, 和配置,數據等文件, 如
/etc/my.cnf
或/etc/mysql/
-
MySQL依賴: mysql依賴於
libaio
庫, 安裝前先檢查下是否已安裝, 一般情況都有#檢查是否已安裝, 看是否提示已安裝 apt search libaio #安裝 apt install libaio1 #爲啥多了個1? 因爲倉庫中名字就是這個..
- 1
- 2
- 3
- 4
-
下載: 通過瀏覽器下載, 地址: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
-
解壓: 解壓後, 可以憑自己喜好存於某個位置
tar -xJvf Downloads/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
- 1
-
創建mysql用戶: 官網建議, 以非root用戶運行mysqld, 有助於安全性. 這裏創建了
mysql
用戶# 創建一個不能登錄的系統用戶mysql, 默認也創建了組 useradd -r -s /bin/false mysql
- 1
- 2
-
初始化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
-
-
運行mysqld : 同樣的, 以
mysql
身份運行, 這裏的mysqld_safe一個啓動mysqld方便的工具.sudo bin/mysqld_safe --user=mysql &
- 1
-
修改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
殺死它 -
增加安全性(可選) : mysql提供了
mysql_secure_installation
腳本來配置msyqld安全方面的配置, 功能如-
設置root賬戶密碼
-
阻止外部訪問root賬戶
-
刪除匿名用戶
-
等等
使用後最直觀感受是, 用戶密碼不能是簡單的123456了, 必須複雜… 開發環境下不建議使用.
#直接運行即可 mysql_secure_installation
- 1
- 2
-
-
自啓配置: 我們要自啓的是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
大功告成!