mysql錯誤怎么處理 mysql輸錯了怎么辦
mysql錯誤代碼1045不能登錄的原因與解決方法
錯誤如下:1045 Access denied for user 'root'@'localhost' (using password:YES)
成都創新互聯是專業的清豐網站建設公司,清豐接單;提供網站建設、做網站,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行清豐網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!
想起來有可是在navicat添加的root@'%'用戶,可能密碼和現在新版本5.7的加密不同了,導致密碼不對.
所以解決方法是更新用戶密碼.
注意5.7版本密碼保存的列是 authentication_string ,密碼要用函數password加密.
更新密碼的SQL是 update user set authentication_string=password('密碼') where user="root";
下面是Windows平臺下操作步驟:
配置文件my.ini ,在mysqld下面添加skip-grant-tables,意思是可以直接回車登錄,保存退出。重啟mySQL,然后運行cmd
輸入mysql -u root -p就可以不用密碼登錄了,出現password:的時候直接回車可以進入。
1.切換到mysql數據庫:use mysql;
2.給root用戶設置新密碼,
mysql update user set authentication_string=password('密碼') where user="root";
3.刷新數據庫mysql flush privileges;
4.再修改my.ini,把剛加入的"skip-grant-tables"這行刪除或者添加#注釋,保存退出再重啟mysql服務就可以了。
一些參考命令
#刪除之前配置 drop user 'root' @ '%' ;
#配置遠程登錄 CREATE USER 'root' @ '%' IDENTIFIED BY password( '你的密碼') ;
#授權 GRANT ALL ON *.* TO 'root' @ '%' ;
#更新權限 flush privileges;
#查看用戶,主機,加密方法 select user,host,plugin from user;
MYSQL報錯怎么處理?
1、原因:可能是/usr/local/mysql/mysql.pid文件沒有寫的權限;
解決方法 :給予權限,執行 “chmod 775 /usr/local/mysql/ -R” 然后重新啟動mysqld。
2、原因:可能進程里已經存在mysql進程;
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進程,如果有使用“kill -9 進程號”殺死,然后重新啟動mysqld。
3、原因:可能是第二次在機器上安裝mysql,有殘余數據影響了服務的啟動;
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。
4、原因:mysql在啟動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir);
解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data。
5、原因:skip-federated字段問題;
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated字段,如果有就立即注釋掉吧。
6、原因:錯誤日志目錄不存在;
解決方法:使用“chown” “chmod”命令賦予mysql所有者及權限。
7、原因:如果是centos系統,默認會開啟selinux;
解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled后存盤退出重啟機器試試。
8、原因:log-bin路徑錯誤;
解決方法:查看對應數據庫下的error log,例如我的數據庫為,/usr/local/mysql/var目錄,其下的localhost.localdomain.err為錯誤日志,只要把其下的ib_logfile*刪除即可,重啟mysql即可。
一、Linux下MySQL的啟動與停止
1、Mysql啟動、停止、重啟常用命令
a、啟動方式
(1)使用 service 啟動:
[root@localhost /]# service mysqld start (5.0版本是mysqld)
[root@szxdb etc]# service mysql start (5.5.7版本是mysql)
(2)使用 mysqld 腳本啟動:
/etc/inint.d/mysqld start
(3)使用 safe_mysqld 啟動:
safe_mysqld
b、停止方式
(1)使用 service 啟動:service mysqld stop
(2)使用 mysqld 腳本啟動:/etc/inint.d/mysqld stop
(3)mysqladmin shutdown
c、重啟方式
(1)使用 service 啟動:
service mysqld restart
service mysql restart (5.5.7版本命令)
(2)使用 mysqld 腳本啟動:
/etc/init.d/mysqld restart
MYSQL錯誤:Error Code: 1175解決辦法
對table某行數據進行更新,發現修改不了數據,報錯如下:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences - SQL Editor and reconnect.
原因是MySQL安全等級高,更新時不用主鍵當where語句,就會拒絕update。
寫入Mysql語句:set sql_safe_updates =0;
之后再進行操作即可。
解決Mysql錯誤Too many connections的方法
MySQL數據庫 Too many connections
出現這種錯誤明顯就是 mysql_connect 之后忘記 mysql_close;
當大量的connect之后,就會出現Too many connections的錯誤,mysql默認的連接為100個,而什么情況下會出現這種錯誤呢?
正常的mysql_connect 之后調用 mysql_close()關閉連接
但在連接錯誤時,會者mysql_real_query()出現錯誤退出時,可能忘記mysql_close();
所以在程序return 之前一定要判斷是否close(),最穩妥的方法就是在寫任何函數時都只有一個出口!
還有可以通過修改mysql配置文件來加大允許連接的數量!
有時你的服務器是經常出現這樣的錯誤呢:
錯誤信息如下:
Can not connect to MySQL server
Error: Too many connections
Errno.: 1040
Similar error report has beed dispatched to administrator before.
從官方文檔知道Linux上面編譯安裝的mysql默認的連接為100個
文檔:
mysql官方告訴我們需要修改max_connections的值,那么我們怎么去修改呢?有兩種方法
1、修改配置文件文件
修改/etc/my.cnf這個文件,在[mysqld] 中新增max_connections=N,如果你沒有這個文件請從編譯源碼中的support-files文件夾中復制你所需要的*.cnf文件為到 /etc/my.cnf。我使用的是my-medium.cnf,中型服務器配置。例如我的[mysqld]的內容如下
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 160M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
max_connections=1000
由于對mysql還不是很熟悉,所以很多參數沒有修改。哈哈。。
2、非使用mysqld腳本自動啟動的用戶。
修改MYSQLHOME/bin/mysqldsafe文件例如:/usr/local/mysql/bin/mysqldsafe這個文件grep?n‘maxconnection′
MYSQLHOME/bin/mysqldsafe文件例如:/usr/local/mysql/bin/mysqldsafe這個文件grep?n‘maxconnection′MYSQL_HOME/bin/mysqld_safe
修改對應行號的max_connections參數值
3、服務器登錄mysql : mysql -u root -p
百分之九十進不去,進不去的執行重啟命令 :/etc/init.d/mysql restart(centos系統)
此時重啟mysql就能連接mysql了,如果還有時間,可以繼續下一步,治病要治本
打開配置文件 添加一下配置 vi /etc/my.cnf
wait_timeout = 600
interactive_timeout = 600
再次重啟mysql即可
原理解答
mysql 默認100 連接數,超過則連不上,實際工作的連接數遠遠沒有100,大部分在sleep
所以要么增大連接數,要么殺掉無用連接,推薦后者。
當前名稱:mysql錯誤怎么處理 mysql輸錯了怎么辦
本文網址:http://www.xueling.net.cn/article/hidigs.html