国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL使用中各種問題總結

2024-07-24 12:37:56
字體:
來源:轉載
供稿:網友

現在mysql數據庫使用的人越來越多了,同時問題也是越來越多了,下面我總結了一些常用見的在mysql使用過程中碰到的一些問題解決辦法.

MySQL Workbench 無法使用

之前是用的 XAMPP 的 MySQL 組件,以前的使用相對比較簡單,只是把數據庫導入進去之后就在 Web 上直接用了,沒有發現這個組件存在的問題,今天用 MySQL Workbench 訪問這個庫,發現報各種錯誤,主要的意思是/var/folders/下的某個詭異的目錄沒有讀寫權限,更改了目錄讀寫權限后也是錯誤依舊,本來猜測是 Workbench 自己的原因,后來下載的新的版本也還是不能行,查看 MySQL 數據文件夾下的 err 文件,發現這個 MySQL 服務組件居然報了n多烏七八糟的錯誤,看來這個服務端已經不能要了,重新下載了個官方的 MySQL for Mac 版本,mysql-5.5.17-osx10.6-x86.dmg,裝上去把庫也掛上去,Workbench 居然好了.

由此看來,當 Workbench 出問題的時候,先不要著急罵 Workbench,看看自己的庫是不是已經危了.

MySQL 訪問權限

MySQL 比較白癡,127.0.0.1 和 localhost 不知道是一碼事,在權限表里面是分開的。在修改密碼的時候,一開始只改了1行,把localhost 改成了 %,登陸進去也好好的,但就是看不到庫,比較讓人崩潰,后來把兩行都重新設置了才正常,另外,如果加外面的訪問 % 的時候,最好單加一行,別把原來的刪掉,不然也會容易錯亂.

如果新創建用戶,并且開通訪問權限,其實寫 localhost 和 % 這兩個就成了.

  1. GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION
  2. GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION
  3. FLUSH PRIVILEGES

MySQL JDBC 連接

JDBC 訪問 MySQL 的連接方式有點奇怪,用 127.0.0.1 可以正常訪問,但是 localhost 會被拒絕,粗略看了下原因,如果是 localhost,在連接的時候會用本地的 IP 地址直接訪問,如果這個IP 地址不在 MySQL 的訪問權限表里,就會被拒絕掉,這個問題在 PHP 下面就沒有發生,深層次的原因有空的時候好好分析分析.

MySQL 編碼

MySQL 的編碼總是非常惡心,用默認的配置啟動,在程序里插入中文,提示:error 1336 (HYOOO):Incorrect string values:...

首先,考慮是服務器編碼的問題,在my.cnf 的[mysqld]里面添加了:

character_set_server = utf8

在 MySQL 里確認字符集已均改為utf8,代碼如下:

  1. mysql> SHOW VARIABLES LIKE 'character%'
  2. +--------------------------+-----------------------------------------------------+ 
  3. | Variable_name            | Value                                               | 
  4. +--------------------------+-----------------------------------------------------+ 
  5. | character_set_client     | utf8                                                | 
  6. | character_set_connection | utf8                                                | --Vevb.com 
  7. | character_set_database   | utf8                                                | 
  8. | character_set_filesystem | binary                                              | 
  9. | character_set_results    | utf8                                                | 
  10. | character_set_server     | utf8                                                | 
  11. | character_set_system     | utf8                                                | 
  12. | character_sets_dir       | /usr/local/mysql-5.5.17-osx10.6-x86/share/charsets/ | 
  13. +--------------------------+-----------------------------------------------------+ 

但是,中文數據依然無法插入,錯誤依舊,考慮庫和表的字符集的問題,更改庫字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET utf8;

依舊不行,更改原表的字符集:

ALTER TABLE temp_table DEFAULT CHARACTER SET utf8;

依舊還是不行,再繼續把表默認的字符集和所有字符列,CHAR,VARCHAR,TEXT,改為新的字符集:

ALTER TABLE temp_table CONVERT TO CHARACTER SET utf8;

確認查看各個列的字符集:

  1. mysql> show full columns from temp_table; 
  2. +--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ 
  3. | Field  | Type         | Collation       | Null | Key | Default | Extra | Privileges                      | Comment | 
  4. +--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ 
  5. No     | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  6. Name   | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  7. | Price  | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  8. Count  | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  9. Date   | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  10. | Source | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  11. | Export | varchar(100) | utf8_general_ci | YES  |     | NULL    |       | select,insert,update,references |         | 
  12. +--------+--------------+-----------------+------+-----+---------+-------+---------------------------------+---------+ 
  13. rows in set (0.01 sec) 

終于正常.

另外加一句,如果MySQL 服務端設置好之后,JDBC 或者 PHP 連接 MySQL 中文還是有問題,那多半是 Conn 的字符集問題,最好在查詢開始前加一句:SET NAMES 'utf8'; 這句相當于:

SET character_set_client = utf8;

SET character_set_results = utf8;

SET character_set_connection = utf8;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林周县| 赤城县| 图们市| 张家口市| 双流县| 宾川县| 博兴县| 伊吾县| 固镇县| 孝感市| 根河市| 嘉荫县| 新津县| 威信县| 山阳县| 瓮安县| 邵东县| 茶陵县| 武宁县| 鸡泽县| 太湖县| 泾阳县| 通化县| 防城港市| 本溪市| 汶川县| 南涧| 辽宁省| 宜阳县| 和田市| 岐山县| 安塞县| 玉林市| 咸丰县| 南陵县| 张家川| 修武县| 河曲县| 嵊泗县| 渝北区| 股票|