Linux 安裝 MySQL 5.7 並連接 Navicat 詳細過程

目錄

MySQL 安裝及配置

MySQL 設置

連接 Navicat

其他問題


MySQL 安裝及配置

官方下載地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

解壓
tar -xvf 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

 

創建用戶組和用戶並修改權限

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

 

MySQL 設置

初始化數據庫

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
該密碼是隨機產生的

 

啓動 mysql 並修改密碼

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
啓動 mysql
service mysql start 或 /etc/init.d/mysql start
查看
ps -ef|grep mysql

改密碼這裏我遇到了一個問題,有的 Linux 版本可以直接使用 service mysql start 啓動MySQL,而我使用的不行,需要使用 /etc/init.d/mysql start 啓動。

 

修改密碼方法 1

./mysql -u root -p   #bin目錄下
這裏需要使用上面紅框括起來的密碼

執行這3步
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

 

修改密碼方法 2

使用該方法,還完成了一些其他的配置。

./mysql_secure_installation

 

 

連接 Navicat

先登錄數據庫,然後執行下面3個命令,使用 % 能讓任何 host 連接,也可以設置特定的 IP。如果不進行設置會報下面的錯:

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

完成設置後,我筆記本 Linux 的 Navicat 可以連接數據庫,我臺式電腦 Windows 的 Navicat 也能連接到數據庫了。

 

 

其他問題

在別的目錄啓動 mysql

這樣安裝下來,每次使用 mysql 都需要到 bin 目錄下,按照以下方法就可以在常用目錄下登陸 mysql:

在常用目錄下使用mysql的方法
pwd查看常用目錄路徑
ln -s /usr/local/mysql/bin/mysql 常用目錄路徑

 

mysql 重啓後報錯 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

在上網查閱資料,有的博客說是少了一個配置。需要在 /etc/my.cnf文件中添加 socket=/tmp/mysql.sock。但是我們上面的配置中已經有了這一項了,所以我使用 /etc/init.d/mysql start 啓動 MySQL 後就解決問題了。沒有配置相應內容的,需要配置相應內容後再啓動。

 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

/etc/my.cnf 文件,在 [mysqld] 下面添加 skip-grant-tables 這個配置。然後需要重啓 MySQL 的服務,直接在 /usr/local/mysql/bin 目錄下使用 ./mysql 命令,此時是不需要密碼就能登錄進去的。通過該語句完成密碼的重置工作:

update user set authentication_string=password("新密碼") where user="root"; 

然後需要按連接 Navicat 的方法設置,退出後刪除 skip-grant-tables 配置再重啓服務即可解決問題。

 

安裝配置過程中常用命令及目錄

配置 my.cnf
vim /etc/my.cnf

啓動 mysql
service mysql start或/etc/init.d/mysql start

/usr/local/mysql/bin 下使用 ./mysql

 

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