目錄
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