linux伺服器 安裝 MySQL8 資料庫 并遠端連接配接
最終效果展示:
具體步驟如下:
- 檢查是否已經安裝過mysql,執行指令:
rpm -qa | grep mysql
- 如果有顯示資訊,說明有殘留檔案,建議删除,删除指令:
- 再次執行第1步,檢視是否已經删除。
- 查詢所有mysql對應的檔案夾,
find / -name mysql
- 直接删除所有mysql檔案夾,
find / -name mysql | xargs rm -rf
- 檢視是否删除完畢:
顯示:whereis mysql
說明已完全删除。mysql:
- 檢查mysql使用者組和使用者是否存在,如果沒有,則建立:
cat /etc/group | grep mysql cat /etc/passwd | grep mysql groupadd mysql useradd -r -g mysql mysql
- 從官網下載下傳用于linux的mysql安裝包,使用wget下載下傳指令下載下傳(推薦):
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
上述指令可以根據官網的最新版本改動版本号。
也可以直接到官網下載下傳傳到伺服器上,官方下載下傳網站:https://downloads.mysql.com/archives/community/
一般選擇linux-Generic通用版本。
- 解壓指令:
tar xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
- 移動到/usr/local/下
移動 mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/ 進入目錄 cd /usr/local/ 改名,不建議将mysql改成其他名字 mv mysql-8.0.19-linux-glibc2.12-x86_64 mysql
- 更改mysql目錄下所有的目錄及檔案夾所屬的使用者組和使用者,以及權限:
chown -R mysql:mysql /usr/local/mysql chmod -R 755 /usr/local/mysql
可能要添加一步:删除my.cnf檔案,因為mysql現在如果不提供my.cnf檔案會使用預設參數。如果不想删除可自行修改my.cnf的檔案參數。
删除指令如下:
rm /etc/my.cnf
- 進入bin目錄,初始化mysql,務必記住初始化給出的動态密碼。
如果報錯說沒有安裝libaio.so.1的話,那麼需要安裝,安裝指令:cd /usr/local/mysql/bin ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
yum install libaio*
- 測試啟動mysql伺服器
/usr/local/mysql/support-files/mysql.server start
- 添加軟連結,這樣可以在全局都可以使用service mysql指令:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql 重新開機服務 service mysql restart
- 登入mysql,修改密碼:
mysql -u root -p 輸入剛剛給出的原始密碼 ******* 執行以下sql語句更改密碼: ALTER USER USER() IDENTIFIED BY 'yourpass'; flush privileges;
- 開放遠端連接配接:
use mysql; update user set user.Host='%' where user.User='root'; flush privileges;
-
此時可以嘗試使用遠端工具連接配接伺服器的資料庫,記得需要開放mysql的3306端口,如果使用navicat的話可能還需要執行以下mysql語句:
登入mysql後
use mysql; alter user 'root'@'%' identified with mysql_native_password by '密碼'(跟原密碼相同即可,否則相當于更改密碼); flush privileges;
- 常用指令:
[[email protected] etc]# service mysql Usage: mysql {start|stop|restart|reload|force-reload|status} [ MySQL server options ] service mysql start service mysql stop service mysql restart service mysql reload service mysql force-reload service mysql status