網(wǎng)站建設(shè)公眾號(hào)開(kāi)本周的新聞大事10條
Linux下安裝MySQL8.0的詳細(xì)步驟
第一步:下載安裝配置
第二步:修改密碼,并設(shè)置遠(yuǎn)程連接(為了可以在別的機(jī)器下面連接該mysql)
第三步:使用Navicat客戶(hù)端連接
搞了一臺(tái)云服務(wù)器,首先要干的活就是得安裝數(shù)據(jù)庫(kù),在Windows下安裝不用說(shuō),傻瓜式操作,在Linux上安裝少說(shuō)要記錄一下。
我使用的是XShell7 ssh 連接工具訪問(wèn)的Linux,其他工具的用法和命令都一樣,界面如下:
在這里我使用的不是root用戶(hù)登錄的,所以先切換到root用戶(hù),命令:su
第一步:下載安裝配置
- 切換到 /usr/local/
cd /usr/local/
- 創(chuàng)建mysql文件夾
mkdir mysql
- 切換到mysql文件夾下
cd mysql
- 下載mysql8.0安裝包
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
等待下載成功
- 解壓mysql8.0安裝包
tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
- 重命名解壓出來(lái)的文件夾,這里改成mysql-8.0
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0
- . /use/local/mysql-8.0文件夾下創(chuàng)建data文件夾 存儲(chǔ)文件
mkdir data
- 分別創(chuàng)建用戶(hù)組以及用戶(hù)和密碼(如果提示已存在說(shuō)明之前有創(chuàng)建過(guò)了)
groupadd mysql
useradd -g mysql mysql
- 授權(quán)剛剛新建的用戶(hù)
chown -R mysql.mysql /usr/local/mysql/mysql-8.0
chmod 750 /usr/local/mysql/mysql-8.0/data -R
- 配置環(huán)境,編輯/etc/profile文件
注意:這里有一個(gè)坑,在配置完環(huán)境變量后,需要執(zhí)行source /etc/profile命令,使配置文件生效
vim /etc/profile
#--------------------------
#點(diǎn)擊鍵盤(pán)上的i鍵,進(jìn)入輸入模式,在配置文件最后增加一行:
#--------------------------
export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
#添加完成后,按Esc鍵退出輸入模式,進(jìn)入命令模式,輸入:wq,保存并退出
#然后在輸入cat /etc/profile 查看是否保存成功,效果如下:↓↓↓↓↓↓
11. 編輯my.cnf文件
vim /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8.0
datadir=/usr/local/mysql/mysql-8.0/data
log-bin=/usr/local/mysql/mysql-8.0/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/mysql-8.0/data
innodb_log_group_home_dir=/usr/local/mysql/mysql-8.0/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql/mysql-8.0/data/mysql.log
pid-file=/usr/local/mysql/mysql-8.0/data/mysql.pid
#
# include all files from the config directory
- 切換到/usr/local/mysql/mysql-8.0/bin目錄下
cd bin
- 初始化基礎(chǔ)信息,得到數(shù)據(jù)庫(kù)的初始密碼(在/usr/local/mysql/mysql-8.0/bin目錄下執(zhí)行)
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql//mysql-8.0/data/ --initialize
#初始化完成后,復(fù)制最后的初始密碼,保存下來(lái)后面需要(這一步好像并沒(méi)有用)
#igTn=3j-
- 復(fù)制 mysql.server 文件,在/usr/local/mysql/mysql-8.0目錄下執(zhí)行
cp -a ./support-files/mysql.server /etc/init.d/mysql
cp -a ./support-files/mysql.server /etc/init.d/mysqld
- 賦予權(quán)限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
- 檢查一下/var/lib/mysql是否存在,否則進(jìn)行創(chuàng)建
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/
- 啟動(dòng)數(shù)據(jù)庫(kù),有SUCCESS字眼說(shuō)明MySQL安裝完成
service mysql start
#出現(xiàn)SUCCESS 說(shuō)明啟動(dòng)成功,效果圖如下:
ps:
如果發(fā)現(xiàn)啟動(dòng)失敗,可以先查看data里面的mysql.log,如果有提示3306這樣的字樣,第一個(gè)想到的應(yīng)該是端口被占用,
使用lsof -i:端口號(hào),查看是哪個(gè)PID(進(jìn)程號(hào))占用了該端口,然后使用kill PID(進(jìn)程號(hào))殺掉進(jìn)程,重新執(zhí)行service mysql start
第二步:修改密碼,并設(shè)置遠(yuǎn)程連接(為了可以在別的機(jī)器下面連接該mysql)
在這一步最開(kāi)始就浪費(fèi)了我好大的時(shí)間。如果用之前的初始密碼登錄,可能會(huì)出現(xiàn)以下的錯(cuò)誤:
在這一步的時(shí)候,研究了好久,記錄一下處理過(guò)程:
- 在 vim /etc/my.cnf文件中,在[mysqld]的段中加上一句:skip-grant-tables --跳過(guò)密碼驗(yàn)證
- 然后保存退出,重啟MySQL服務(wù)
- 然后輸入mysql -uroot -p 敲兩下回車(chē),進(jìn)入mysql
- USE mysql ; --進(jìn)入數(shù)據(jù)庫(kù)
- 在mysql8.0 中,這個(gè)更新語(yǔ)法不能用
UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ;使用這個(gè):ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密碼’; - 最后按照下邊的步驟進(jìn)行就可以了。
- 修改數(shù)據(jù)庫(kù)root賬號(hào)的密碼,并設(shè)置可以遠(yuǎn)程訪問(wèn)(因?yàn)閞oot默認(rèn)是不能遠(yuǎn)程訪問(wèn)的)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
- 執(zhí)行flush privileges; 使密碼生效
flush privileges;#刷新權(quán)限
- 選擇數(shù)據(jù)庫(kù)
use mysql;
- 再修改遠(yuǎn)程連接并生效
mysql> create user 'root'@'%' identified by 'password';
Query OK, 0 rows affected (0.03 sec)
mysql> grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
- 執(zhí)行提交命令,搞定!
flush privileges;#刷新權(quán)限
第三步:使用Navicat客戶(hù)端連接
1.填寫(xiě)IP、端口連接mysql服務(wù)
注:若連接不到可以查看mysql端口是否開(kāi)放,若未開(kāi)放則開(kāi)放端口繼續(xù)連接,最終測(cè)試成功!!!