SQL命令備忘
阿新 • • 發佈:2020-08-29
MySQL
1.連線MySQL
格式: mysql -h主機地址 -u使用者名稱 -p使用者密碼
1、連線到本機上的MYSQL。 首先開啟DOS視窗,然後進入目錄mysql\bin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼.注意使用者名稱前可以有空格也可以沒有空格,但是密碼前必須沒有空格,否則讓你重新輸入密碼 如果剛安裝好MYSQL,超級使用者root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是: mysql> 2、連線到遠端主機上的MYSQL。假設遠端主機的IP為:110.110.110.110,使用者名稱為root,密碼為abcd123。則鍵入以下命令: mysql-h110.110.110.110 -uroot -p 123;(注:u與root之間可以不用加空格,其它也一樣) 3、退出MYSQL命令: exit (回車)
2.修改密碼和刪除使用者
格式:mysqladmin -u使用者名稱 -p舊密碼 password 新密碼
1、給root加個密碼ab12。 首先在DOS下進入目錄mysql\bin,然後鍵入以下命令 mysqladmin -u root -password ab12 注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。 2、再將root的密碼改為djg345。 mysqladmin -u root -p ab12 password djg3453. 刪除使用者 @>mysql -u root -p @>密碼 mysql>Delete FROM user Where User='test' and Host='localhost'; mysql>flush privileges; mysql>drop database testDB; //刪除使用者的資料庫 刪除賬戶及許可權:>drop user 使用者名稱@'%'; >drop user 使用者名稱@ localhost;
4. 修改指定使用者密碼
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password('新密碼') where User="test" and Host="localhost";
mysql>flush privileges;
3.增加新使用者
注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符
格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by “密碼”
3.1 登入MYSQL(有ROOT許可權),這裡以ROOT身份登入: @>mysql -u root -p @>密碼 3.2 首先為使用者建立一個數據庫(testDB): mysql>create database testDB; 3.3 授權test使用者擁有testDB資料庫的所有許可權(某個資料庫的所有許可權): mysql>grant all privileges on testDB.* to test@localhost identified by '1234'; mysql>flush privileges;//刷新系統許可權表 格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"; 3.4 如果想指定部分許可權給一使用者,可以這樣來寫: mysql>grant select,update on testDB.* to test@localhost identified by '1234'; mysql>flush privileges; //刷新系統許可權表 3.5 授權test使用者擁有所有資料庫的某些許可權: mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "1234"; //test使用者對所有資料庫都有select,delete,update,create,drop 許可權。 //@"%" 表示對所有非本地主機授權,不包括localhost。 //對localhost授權:加上一句grant all privileges on testDB.* to test@localhost identified by '1234';即可。
4.啟動和關閉mysql服務
Windows:
切換到mysql\bin目錄下,操作dos視窗
啟動: net start mysql
關閉: net stop mysql
Windows下mysql服務不能直接重啟,,必須先停止在啟動
Linux:
啟動: service mysql start
重啟: service mysql restart
關閉: service mysql stop
5.mysql跳過密碼驗證修改密碼
1、修改mysql的配置檔案 MySQL配置檔案my.ini中,在[mysqld]下新增skip-grant-tables,關閉mysql服務並重新開啟; 輸入命令:mysql -u root -p 回車後,要求輸入密碼,直接回車跳過,則直接進入MySQL。 2、修改密碼: 輸入以下命令開始修改root使用者的密碼(注意:命令中mysql.user中間有個“點”) mysql> update mysql.user set password=PASSWORD(‘新密碼‘) where User=‘root‘;
重新整理許可權表 mysql> flush privileges;
退出 mysql> quit
------一些小坑
1.group_concat函式長度預設最大為1024位元組
-- 查詢group_concat()當前可拼接的最大長度(預設是1024) SHOW VARIABLES LIKE 'group_concat_max_len'; -- 設定group_concat()函式可拼接的最大長度(mysql重啟後會失效) SET SESSION group_concat_max_len=10240; SET GLOBAL group_concat_max_len=10240;
-- my.ini配置檔案中新增
group_concat_max_len = 102400 #你要的最大長度
然後重啟mysql服務
2.MySQL根據配置檔案會限制server接受的資料包大小,有時候大的插入和更新會被max_allowed_packet引數限制掉,導致失敗,提示“Packet for query is too large (1142 > 1024)”
檢視目前配置 show VARIABLES like '%max_allowed_packet%'; 預設為1M 改為更大的值(mysql重啟後會失效):
set global max_allowed_packet = 2*1024*1024*10;
--my.ini配置檔案中[mysqld]下新增
max_allowed_packet = 100M