Linux 安裝mysql 5.7.21 可能遇到的問題歸類

WSH_AI發表於2018-04-17
1、Done with "file /usr/share/mysql/czech/errmsg.sys from install of mysql-community-common-5.7.9-1.el6

解決方案:刪除原來的包,重新安裝。
yum -y remove mysql-libs-* 

2、安裝資料庫 初始化(這裡是以root身份執行的):bin/mysqld --initialize --user=mysql

報錯 [ERROR] --initialize specified but the data directory has files in  it. Aborting.
解決方案:密碼初始化不成功  修改初始化密碼
方法一: 
# /etc/init.d/mysqld stop 
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 
# mysql -u root mysql 
# mysql -u root mysql 
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 
mysql> FLUSH PRIVILEGES; 
mysql> quit 
# /etc/init.d/mysqld restart 
# mysql -uroot -p 
Enter password: <輸入新設的密碼newpassword> 
mysql> 
注意 【’newpassword’   ’root’  】
ERROR 1054 (42S22): Unknown column '’root’' in 'where clause'
將單引號更新為雙引號

注意 【Password】
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> ERROR 1054 (42S22): Unknown column 'password' in 'field list' 
錯誤原因:mysql資料庫下已經沒有password這個欄位了,password欄位改成了authentication_string。
update mysql.user set authentication_string=PASSWORD('password') where User='root';

3、啟動資料庫服務 MySQL Daemon failed to start.  服務啟動失敗
3.1、檢視mysqld的log檔案 
# less /var/log/mysqld.log 
/usr/libexec/mysqld: Can't change dir to ‘XXX' (Errcode: 13) 
3.2、首先是檢視資料庫日誌 
mysqld started 
[Warning] Can't create test file xxx.lower-test 
[Warning] Can't create test file xxx.lower-test 
/usr/libexec/mysqld: Can't change dir to '/xxx' (Errcode: 13) 
[ERROR] Aborting 
首先檢查資料目錄和日誌目錄的許可權和所屬使用者,許可權和所屬使用者都沒問題,那應該是SELINUX的許可權限制了。 
3.3、先檢視當前配置資訊. 
# getenforce 
Enforcing 
就表明SELinux已經啟用.只需要關閉即可。 
關閉方法: 
#setenforce 0 (0|1 開|關) 
或者 
setsebool ftpd_disable_trans 1 
命令也可以.
3.4、查查資料庫日誌會出現
mysqld started 
2018-04-17T03:48:30.343457Z 0 [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
2018-04-17T03:48:30.345407Z 0 [ERROR] Aborting
錯誤:Please read "Security" section of the manual to find out how to run mysqld as root!
根據提示,查了 /opt/redmine-1.2.1-1/mysql/docs/mysql.info的Security部分,發現是因為MySQL為了安全,不希望root使用者直接啟動mysql。
解決方案
1、root使用者進行強制啟動;在啟動過程中,加入引數:--user=root  【service mysqld start --user=root】
2、修改  /etc/init.d/mysqld  137
$exec $MYSQLD_OPTS --datadir="$datadir" --socket="$socketfile" \
                --pid-file="$mypidfile" \
                --basedir=/usr --user=mysql $extra_opts >/dev/null &
        safe_pid=$!
將mysql 更新為  root

4、登入資料庫報錯ERROR 1820 (HY000): You must reset your password using ALTER USER statement befo re executing this statement.直接執行:
set password=password('密碼');

5、遠端登入報錯 Host is not allowed to connect to this MySQL server先說說這個錯誤,其實就是我們的MySQL不允許遠端登入,所以遠端登入失敗了,
解決方法如下:
1. 在裝有MySQL的機器上登入MySQL mysql -u root -p密碼
2. 執行use mysql;
3. 執行update user set host = '%' where user = 'root';這一句執行完可能會報錯,不用管它。
4. 執行FLUSH PRIVILEGES;
經過上面4步,就可以解決這個問題了。 

注: 第四步是重新整理MySQL的許可權相關表,一定不要忘了,我第一次的時候沒有執行第四步,結果一直不成功,最後才找到這個原因。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31530407/viewspace-2153028/,如需轉載,請註明出處,否則將追究法律責任。

相關文章