1.用戶名、密碼、權限 mysql
增長新用戶: linux
查詢:grant select on database.* to "username"@"yourip" identified by "password"; sql
所有權限:grant all privileges on *.* to" username"@"yourip" identified by "password"; 數據庫
本地全部權限:grant all privilegeson *.* to"username"@"localhost" identified by "password"; 服務器
*.*: database.table *.* 全部的數據庫和表,根據我的要求修改database和table名數據結構
"username"@"yourip" 例如:"root"@"ip地址",即賦予該ip地址登錄此數據庫的權限。%表明全部任意ip
ide增長一個用戶skys,並容許從其餘機器登錄: 編碼
增刪改查:grant select,insert,update,delete on *.* to skys@"%" identified by "123456"; spa
所有權限:grant all privileges on *.* to"skys"@"%" identified by "123456"; 命令行
修改用戶名密碼:
修改mysql密碼:mysqladmin -u用戶名 -p舊密碼 password 新密碼
或進入mysql命令行SET PASSWORD FOR root=PASSWORD("root");
2. 經常使用數據庫命令
查看數據庫引擎: show engines;
顯示數據庫列表: show databases;
使用數據庫: use庫名;
顯示錶: show表名;
顯示數據表的結構: describe 表名;
刪庫: dropdatabase 庫名;
刪表: droptable 表名;
將表中記錄清空: delete from 表名;
顯示錶中的記錄:select * from 表名;
建立數據庫並指定編碼:
1. create database 數據庫名 character set utf8 collate utf8_general_ci;
2. create database if not exists 數據庫名 default character set utf8;
查看數據庫編碼格式的命令:
1. show variables like 'character%';顯示內容較多
2. show variables like 'collation%';顯示內容較少
>show variables like'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
從以上信息可知數據庫的編碼爲latin1,須要修改成gbk或者是utf8;
其中,character_set_client爲客戶端編碼方式;
character_set_connection爲創建鏈接使用的編碼;
character_set_database數據庫的編碼;
character_set_results結果集的編碼;
character_set_server數據庫服務器的編碼;
只要保證以上五個採用的編碼方式同樣,就不會出現亂碼問題。
3. 數據庫的導入導出
導出數據庫和表:(假設數據庫名爲skys)
備份數據庫:mysqldump -uroot -p --lock-tables skys > news.sql (new 任意名)
備份全部數據庫: mysqldump --all-databases > all-databases.sql
備份表:mysqldump -u root -p skys tablename > news.sql;
不備份某個表(多個則寫多個):mysqldump -u root -p --ignore-table=sks.tablename skys > news.sql;
MySQL備份並刷新日誌:mysqldump -uroot -p密碼 --flush-logs --master-data=2 --lock-tables new > new.sql
兩個參數的解說: --single-transaction 用於innodb引擎,而--lock-tables用於myisam。
經常使用:
只導出結構:mysqldump -uroot -p -q -d --lock-tables 數據庫名> news1.sql
只導出數據不導出結構:mysqldump -uroot -p -q -t --lock-tables 數據庫名> news2.sql
導出存儲過程:mysqldump -uroot -n -t -d -R --triggers=false new > new.sql
導出數據庫導出存儲過程導出事件:mysqldump -uroot -nR --events new> a.sql;
導出事件:mysqldump -uroot -p -q -t -d --events skys > events.sql
導入數據和表:
命令行導入數據庫:mysql -uroot -p < news.sql
mysql命令下執行導入:use 數據庫名; source news.sql;
運行存儲過程:call 名稱(參數);
備註1:用命令導出數據庫和用Navicat等客戶端導出的數據庫多少會存在差別,經過linux系統下的mysql命令
導出的數據庫建議仍然使用命令導入,經過客戶端導出的數據庫用命令導入時,會發現常常爆warning警告!
備註2:對於不一樣版本的mysql。建議分別導出數據結構和數據,再從新導入。(可減小出錯率,防止出現沒必要要損失)
備註3:分別導出數據和導出結構時,須要注意結構中是否有DROP命令,根據我的狀況選擇是否刪除DROP命令。