mysql使用中遇到的問題,mysql使用遇到
問題一:
第一次mysql啟動服務失敗,未返回報錯信息
解決方法:
執行mysqld -console命令,查看error信息,對症下藥
但一般情況下,主要是因為mysql目錄下的data文件夾中內容不正確,解決方法有以下兩個
1.在開啟服務前執行初始化命令
mysqld --initalize
然後啟動服務
2.下載5.6或之前版本的mysql壓縮包
將壓縮包解壓後裡面的data文件夾復制到當前mysql所在文件夾根目錄中
然後啟動服務
無論是第一個操作還是第二個操作,記得先關掉服務在操作,操作完了再打開服務
問題二:
mysql缺少performance_schema.session系統表導致各類問題
解決方法:
使用以下兩個命令後重啟服務(windows下關閉再打開)
mysql_upgrade -u root -p
mysql_upgrade -u root -p --force
問題三:
在mysql中插入數據時使用中文報錯,Error Code: 1366. Incorrect string value。
解決方法:
需要完成以下幾步,若第一無法完成可先跳過,只影響數據庫中已有內容,但是為了保證新的數據庫、數據表可寫中文,第二三步一定要正確。
1.設置mysql的編碼,統一改為utf8(因為utf8是兼容性比較強的編碼,如果需要使用其他語言也可以修改為其他的編碼)
打開mysql的根目錄,
新建文件my.ini然後將my-default.ini中內容復制到my.ini然後刪除my-default.ini文件,
在my.ini文件的[mysqld]部分下面加一個語句character_set_server=utf8,
隨後關閉mysql服務再啟動mysql服務。
登陸進入mysql後,別選擇任何數據庫,直接使用\s命令查看字符集編碼,查看server這一項的編碼是否為utf8,如果是的話就算成功
剩下的client和conn應該默認為gbk,如果不是的話可以再網上搜一搜設置辦法
至於DB的編碼,其實是和數據庫有關的,當最開始連接入mysql時,其實是選擇了sys數據庫(默認的系統數據庫),等做了下面的第二步後再選擇其他數據庫之後再使用\s命令,你們就會發現區別。
2.在新建數據庫時,將數據庫設置為utf8編碼
做了這一步,你就會發現你剛創建的數據庫的DB字符集編碼一定是utf8,也保證了你新建的數據庫可以輸入中文。
具體如下
CREATE DATABASE 數據庫名字 CHARACTER SET 'utf8';
3.如果數據庫的編碼未設置,而你還是想輸入中文,那麼你需要在新建數據表的時候對表的編碼進行設置
如下代碼段,建立多個字段,使用CHARACTER SET 'utf8'代碼把表中的所有字段改為utf8格式
CREATE TABLE 表名稱
(
一大堆字段
)CHARACTER SET 'utf8';
以上步驟盡量在mysql安裝配置的時候就完成,避免不必要的麻煩,或者至少完成第二第三步。