溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL5.6添加root用戶報錯:Field 'ssl_cipher' doesn't have a default value怎么解決

發(fā)布時間:2021-09-16 15:33:29 來源:億速云 閱讀:228 作者:chen 欄目:MySQL數(shù)據(jù)庫

這篇文章主要講解了“MySQL5.6添加root用戶報錯:Field 'ssl_cipher' doesn't have a default value怎么解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MySQL5.6添加root用戶報錯:Field 'ssl_cipher' doesn't have a default value怎么解決”吧!

2012.14.15
MySQL: 5.6.19
 剛剛忙完了零售測試環(huán)境的部署,現(xiàn)在處理上周遺留的問題。
由于user 表中確實localhost和127.0.0.1條目信息:

  1. mysql> select Host,User,Password from user where User=\'root\';

  2. +--------------+------+-------------------------------------------+

  3. | Host         | User | Password                                  |

  4. +--------------+------+-------------------------------------------+

  5. | bidevedw\\_db| root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |

  6. | ::1          | root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |


  7. | %            | root | *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD |

  8. +--------------+------+-------------------------------------------+-

這樣導(dǎo)致我在服務(wù)器本地登錄的時候,解析的是以root@'%' 方式登錄,然而這種方式登錄的root是沒有g(shù)rant 權(quán)限,這使得不能給其他用戶授權(quán)。

  1. *************************** 4. row ***************************

  2.                   Host: %

  3.                   User: root

  4.               Password: *D013A4E3A5BB01E4239D18D7E93B59B7D2B767AD

  5.            Select_priv: Y

  6.            Insert_priv: Y

  7.            Update_priv: Y

  8.            Delete_priv: Y

  9.            Create_priv: Y

  10.              Drop_priv: Y

  11.            Reload_priv: Y

  12.          Shutdown_priv: Y

  13.           Process_priv: Y

  14.              File_priv: Y

  15.             Grant_priv: N

  16.        References_priv: Y

  17.             Index_priv: Y

  18.             Alter_priv: Y

  19.           Show_db_priv: Y

  20.             Super_priv: Y

  21.  Create_tmp_table_priv: Y

  22.       Lock_tables_priv: Y

  23.           Execute_priv: Y

  24.        Repl_slave_priv: Y

  25.       Repl_client_priv: Y

  26.       Create_view_priv: Y

  27.         Show_view_priv: Y

  28.    Create_routine_priv: Y

  29.     Alter_routine_priv: Y

  30.       Create_user_priv: Y

  31.             Event_priv: Y

  32.           Trigger_priv: Y

  33. Create_tablespace_priv: Y

  34.               ssl_type:

  35.             ssl_cipher:

  36.            x509_issuer:

  37.           x509_subject:

  38.          max_questions: 0

  39.            max_updates: 0

  40.        max_connections: 0

  41.   max_user_connections: 0

  42.                 plugin: mysql_native_password

  43.  authentication_string:

  44.       password_expired: N

解決思路分析
        把缺失的條目添加到user表中。
由于我也是這半年才真正的接觸MySQL。所以很多也是問度娘,我也以為像user表中添加記錄是使用INSERT into。但是這種方法會報錯:
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value
這是因為user表中有幾個列是非空,而它的默認值是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
查看當前登錄用戶和登錄的方式:
mysql> select user();
+----------------+
 | user()           |
+----------------+
 | root@localhost |
+----------------+
1 row in set (0.00 sec)
這樣就可以不走@'%'
還可以修改root @'%'方式的權(quán)限:

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)
你權(quán)限的時候會顯示:Grant_priv: Y
這樣root用戶以@'%'方式就可以做grant操作

感謝各位的閱讀,以上就是“MySQL5.6添加root用戶報錯:Field 'ssl_cipher' doesn't have a default value怎么解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MySQL5.6添加root用戶報錯:Field 'ssl_cipher' doesn't have a default value怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI