mysql无法安装弹出Log_[MySQL FAQ]系列 -- 启用GTID binlog新安装完的MySQL提示无法登录...
問:剛剛新安裝的MySQL,提示下面信息,無法登入,怎么回事?
[root@imysql mysql]# mysql mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
答:數據庫已經執行過 mysql_install_db 初始化了,按理說應該沒問題。經過排查,發現 $datadir 的 mysql 數據庫目錄的權限模式為:
drwx------ 2 mysql root 4096 Jan 9 20:22 mysql
看起來沒有問題。檢查錯誤日志,發現一行:
130109 21:04:23 [Warning] Bootstrap mode disables GTIDs. Bootstrap mode should only be used by mysql_install_db which initializes the MySQL data directory and creates system tables.
ERROR: 1785 Updates to non-transactional tables are forbidden when DISABLE_GTID_UNSAFE_STATEMENTS = 1.
130109 21:04:23 [ERROR] Aborting
同時,mysql庫下的user表空間文件顯示:
-rw-rw---- 1 mysql mysql 10684 Jan 9 20:22 user.frm
-rw-rw---- 1 mysql mysql 0 Jan 9 20:22 user.MYD
-rw-rw---- 1 mysql mysql 1024 Jan 9 20:22 user.MYI
可以看到,user表空間數據文件大小為0。
看起來應該是和啟用GTID模式有一定關系了。仔細檢查下,發現和GTID相關的選項有:
gtid_mode = ON
binlog_format = mixed
disable-gtid-unsafe-statements = 1
log-bin=binlog
這是因為在啟用GTID模式下,如果對非事務表更新時,無法保證事務一致性,因此設置 disable-gtid-unsafe-statements = 1 確保主從數據一致性。
解決方案:
這時候可以將選項 disable-gtid-unsafe-statements 的值修改為 0。也可以同時關閉 GTID 、 binlog 選項,初始化完畢后再打開。
#gtid_mode = ON
#log-bin=binlog
或
disable-gtid-unsafe-statements = 0
總結
以上是生活随笔為你收集整理的mysql无法安装弹出Log_[MySQL FAQ]系列 -- 启用GTID binlog新安装完的MySQL提示无法登录...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中的字段是_Java – 获取类
- 下一篇: palindromic java_Lee