標籤:value lob 插入 stop 檔案 bin mysqld 修改 服務
原文地址
伺服器操作(cmd)
開啟伺服器(必須保證mysql為windows服務):net start mysql56(此處與系統進程中名字相同)
查看進程表中是否存在:mysqld.exe進程(存在)
關閉伺服器(必須保證mysql為windows服務):net stop mysql56
查看進程表中是否存在:mysqld.exe進程(不存在)
客戶登操作
cmd
1. 登入伺服器:mysql -uroot -p123 -hlocalhost//-hlocalhost可省略,他是預設的
-u:後面跟隨使用者名稱
-p:後面跟隨密碼
-h:後面跟隨IP
2. 退出伺服器:exit或quit
備份與恢複
資料庫匯出SQL指令碼
mysqldump –u使用者名稱 –p密碼 資料庫名>產生的指令檔路徑
例如:mysqldump -uroot -p123 mydb1>C:\mydb1.sql (與mysql.exe和mysqld.exe一樣, 都在bin目錄下)
注意,不要打分號,不要登入mysql,直接在cmd下運行
注意,產生的指令檔中不包含create database語句
執行SQL指令碼
第一種方式
mysql -u使用者名稱 -p密碼 資料庫<指令檔路徑
例如:
先刪除mydb1庫,再重新建立mydb1庫 mysql -uroot -p123 mydb1
MySQL儲存blob資料包太大
com.mysql.jdbc.PacketTooBigException: Packet for query is too large (9802817 > 1048576). You can change this value on the server by setting the max_allowed_packet’ variable.
在my.ini中設定,在[mysqld]下添加max_allowed_packet=10M,例如:
[mysqld]
max_allowed_packet=64M
編碼
查看MySQL資料庫編碼
SHOW VARIABLES LIKE ‘char%’;
編碼解釋
character_set_client:MySQL使用該編碼來解讀用戶端發送過來的資料,例如該編碼為UTF8,那麼如果用戶端發送過來的資料不是UTF8,那麼就會出現亂碼 character_set_results:MySQL會把資料轉換成該編碼後,再發送給用戶端,例如該編碼為UTF8,那麼如果用戶端不使用UTF8來解讀,那麼就會出現亂碼
其它編碼只要支援中文即可,也就是說不能使用latin1
控制台亂碼問題
插入或修改時出現亂碼:
這時因為cmd下預設使用GBK,而character_set_client不是GBK的原因。我們只需讓這兩個編碼相同即可。
因為修改cmd的編碼不方便,所以我們去設定character_set_client為GBK即可。
查詢出的資料為亂碼:
這是因為character_set_results不是GBK,而cmd預設使用GBK的原因。我們只需讓這兩個編碼相同即可。
因為修改cmd的編碼不方便,所以我們去設定character_set_results為GBK即可。 設定變數的語句:
set character_set_client=gbk;
set character_set_results=gbk;
注意,設定變數只對當前串連有效,當退出視窗後,再次登入mysql,還需要再次設定變數。
為了一勞永逸,可以在my.ini中設定:
設定default-character-set=gbk即可。
指定預設編碼
我們在安裝MySQL時已經指定了預設編碼為UTF8,所以我們在建立資料庫、建立表時,都無需再次指定編碼。
為了一勞永逸,可以在my.ini中設定:
設定character-set-server=utf8即可。
character_set_client | utf8 –> mysql把我們用戶端傳遞的資料都當成是utf8!一是給它傳遞utf8,二是如果我們傳遞的是gbk,那麼需要修改這個變數為gbk
character_set_connection | utf8
character_set_database | utf8
character_set_results | utf8 –> mysql發送給用戶端的資料都是utf8的。一是用戶端用utf8編碼,二是如果用戶端使用gbk來編碼,那麼需要修改這個變數為gbk的。
character_set_server | utf8
character_set_system | utf8
原文地址
MySQL資料庫常用操作