文章目錄
一、安裝mysql-5.7.30-linux
1、下載mysql-5.7.30-linux
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
啓動服務
- service mysql start
- 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