linux上安裝MySQL步驟及問題解決

一、安裝mysql-5.7.30-linux

1、下載mysql-5.7.30-linux

MySQL官網下載

2、利用 xftp 傳輸工具

安裝 xftp 傳輸工具將安裝包傳入到linux系統下的opt文件夾,

這裏不會傳輸的夥伴,選擇文件雙擊就行,或者拖拽。

在這裏插入圖片描述

3、解壓mysql

在opt目錄下解壓

tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

將安裝包移動到 /usr/local/ 並重命名爲 mysql

mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql

4、安裝mysql

進入 /usr/local/目錄下,創建用戶組和用戶權限

groupadd mysql
useradd -r -g mysql mysql

創建數據目錄並賦予權限

mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql

配置my.cnf

vim /etc/my.cnf

內容:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql

#就是改了這裏

basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

5、初始化數據庫

進入mysql 的bin目錄

cd /usr/local/mysql/bin/

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看密碼

cat /data/mysql/mysql.err

6、啓動mysql,並更改root密碼

先將mysql.server放置到/etc/init.d/mysql中

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

啓動服務

  1. service mysql start
  2. ps -ef|grep mysql

7、修改密碼

首先登錄mysql,前面的那個是隨機生成的。

./mysql -u root -p #bin目錄下

在這裏插入圖片描述

執行以下操作

SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

如果現在用SQLyog遠程連接,可能連接不上

先登錄數據庫,在執行以下操作

use mysql #訪問mysql庫
update user set host = ‘%’ where user = ‘root’; #使root能再任何host訪問
FLUSH PRIVILEGES; #刷新

此時就可以進行遠程連接了
在這裏插入圖片描述

如果不希望每次都到bin目錄下使用mysql命令則執行以下命令

ln -s /usr/local/mysql/bin/mysql /usr/bin

注意:按照以上順去安裝,基本不會有什麼問題,因爲我試了幾遍,如果中途出去報錯,可以參考一下錯誤去解決。

二、在安裝過程中可能出現的錯誤

1、設置密碼問題

由於mysql5.7之後,mysql數據庫中的mysql庫中的user表沒有了password字段, password字段改成了authentication_string ,安裝一下設置就可以,然後在重新登錄即可。

 update user set password=password("*******") where user="*******";  #修改密碼報錯
update mysql.user set authentication_string=password('*******') where user='*******';  #修改密碼成功
flush privileges;  #立即生效

2、權限不足

Access denied for user ‘root’@‘localhost’ (using password: YES)

出現一下報錯,可以在my.ini配置文件中添加一行,登錄跳過密碼驗證。

先登錄之後,然後在重新設置密碼。

skip-grant-tables #在my.ini,[mysqld]下添加一行,使其登錄時跳過權限檢查

重新設置密碼,刪除my.ini中的跳過密碼驗證。

然後重啓服務

SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

service mysql restart

3、遠程連接不成功

1、網絡原因。

2、防火牆設置問題

由於服務器沒有對外開放mysql的默認端口3306導致

firewall-cmd --permanent --zone=public --add-port=3306/tcp

firewall-cmd --reload

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