這篇文章主要講解了“5.6添加root用戶(hù)報錯:Field 'ssl_cipher' doesn't have a default value怎么解決”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“MySQL5.6添加root用戶(hù)報錯:Field 'ssl_cipher' doesn't have a default value怎么解決”吧!
2012.14.15
MySQL: 5.6.19
剛剛忙完了零售測試環(huán)境的部署,現在處理上周遺留的問(wèn)題。
由于user 表中確實(shí)localhost和127.0.0.1條目信息:
mysql> select Host,User,Password from user where User=\'root\';
+--------------+------+-------------------------------------------+
| Host | User | Password |
+--------------+------+-------------------------------------------+
| bidevedw\\_db| root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |
| ::1 | root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |
| % | root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |
+--------------+------+-------------------------------------------+-
這樣導致我在本地登錄的時(shí)候,解析的是以root@'%' 方式登錄,然而這種方式登錄的root是沒(méi)有g(shù)rant 權限,這使得不能給其他用戶(hù)授權。
*************************** 4. row ***************************
Host: %
User: root
Password: *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: N
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string:
password_expired: N
解決思路分析:
把缺失的條目添加到user表中。
由于我也是這半年才真正的接觸MySQL。所以很多也是問(wèn)度娘,我也以為像user表中添加記錄是使用INSERT into。但是這種方法會(huì )報錯:
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
這是因為user表中有幾個(gè)列是非空,而它的默認值是null .
| ssl_cipher | blob | NO | | NULL | |
| x509_issuer | blob | NO | | NULL | |
| x509_subject | blob | NO | | NULL | |
所以一般的insert into 都是給出前三列。而忽視了其他列。這種方式好像是在5.1之前可以使用的。我的是5.6。這種方式就行不通
解決方法:
GRANT USAGE ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT USAGE ON *.* TO 'root'@'l127.0.0.1' IDENTIFIED BY '123456' WITH GRANT OPTION;
記得要刷新一下:flush privileges;
重新登錄mysql -uroot -p123456
查看當前登錄用戶(hù)和登錄的方式:
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)
這樣就可以不走@'%'
還可以修改root @'%'方式的權限:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456" WITH GRANT OPTION;
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
你權限的時(shí)候會(huì )顯示:Grant_priv: Y
這樣root用戶(hù)以@'%'方式就可以做grant操作
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站