24 MYSQL常用操作
設定更改root密碼
1.把mysql工具加入環境變數
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
2.重啟服務/重新載入profile檔案
/etc/inin.d/mysqld restart
source /etc/profile
3.設定root密碼
mysqladmin -uroot password 'mysql' ---單引號可加可不加,但又特殊字元最好加上/-u指定使用者
4.測試登入
mysql -uroot -p ---p選項後面可跟密碼,也可不跟密碼,不跟密碼是互動式登入
更改密碼
mysqladmin -uroot -p'mysql' password 'abcsss'
重置mysql密碼
1.在/etc/my.cnf配置檔案裡新增 skip-grant
2.mysql -uroot ---進入到庫
3.use mysql ----切換到庫
4.update user set password=password('abcd') where user='root'; --更改密碼
5.取消skip-grant
6./etc/init.d/mysqld restart ----重啟mysql服務
連線mysql :
1.連線本地
mysql -uroot -pmysql
2.連線遠端
mysql -uroot -pmysql -h127.0.0.1 -P3306 --P指定埠 --h指定host(IP)
3.通過sock連線
mysql -uroot -pmysql -S/tmo/mysql.sock -S指定sock檔案
4.連線mysql後執行命令(多數使用在shell腳本里)
mysql -uroot -pmysql -e "show databases" --檢視都有什麼資料庫
mysql常用命令:
庫是由表組成的。表由欄位組成的 庫---表--欄位
show databases; --檢視都有什麼資料庫
use mysql ; ---切換到那個庫
show tables; - --檢視庫裡的表
desc user; 檢視欄位
檢視建表語句
show create table user\G; ---\G表示豎排顯示
檢視當前使用者
select user(); --當前登入為本機
檢視當前使用的資料庫
select database(); --當前所在mysql庫
建立庫
create database db2; --可以看到多個db2的庫
建立表
create table t1(`id` int(4), `name` char(40)); --t1為名字 id、name為欄位 int為格式 char字串最長40
檢視當前資料庫版本
select version(); ---當前為5.6.36
檢視資料庫狀態
show status;
檢視mysql的引數--這些引數也可以再my.cnf定義
show variables; --這裡列舉一部分
也可以指定查詢
show variables like 'slo%'; ---%表示通配,當你不記得字母可以使用這個
修改mysql引數
set global max_connect_errors=1000; --global只是臨時修改,要永久生效需要去配置檔案新增
檢視當前mysql伺服器的佇列:
檢視伺服器佇列可以檢視當前mysql在幹什麼,也可以發行是否有鎖表!
show processlist;
show full processlist; 完整檢視(可以看到info這裡顯示比較完整)
mysql使用者管理
建立使用者;
all:許可權命令 *.* 表示允許操作那些庫
grant all on *.* to 'user1' identified by 'user1';
建立使用者且只能使用SELECT命令和操作db1庫,@後面指定來源IP
grant SELECT on db1.* to 'user2'@'localhost' identified by 'user2'
建立使用者使用全部命令和全部庫,任何機器都可以連線 %表示全部來源IP
grant all on *.* to 'user2'@'%' identified by 'user2'
檢視使用者許可權;
show grants; ---這裡是root登入只能檢視root
檢視其它使用者許可權
show grants for user1;
如果有指定IP的使用者需要加上@後面跟指定的IP
show grants for [email protected];
常用sql語句
查詢語句;
count(*)表示表中有幾行 mysql.user :表示查詢mysql庫中的user表
select count(*) from mysql.user;
查詢表中的所有資料
mysql.user :表示查詢mysql庫中的user表 *表示所有資料
select * from mysql.user\G;
查詢指定段的資料
select db from mysql.user;
也可以指定多個欄位查詢資料
select db,user from mysql.db;
插入一行資料;
use db1; ---切換db1庫
create table t3 (`id` int(4), `name` char(40)); ---建立一個t3的表
insert into db1.t3 values (1,'aa'); ----插入一行資料
select * from db1.t3; ---查詢表中資料
更改表中資料
update db1.t3 set name='123' where ind=1;
可以看到表中資料原本是aaa變成了123
清空表中資料,表中結構保留
truncate table db1.t3;
desc檢視欄位,可以看到只清空了表的資料,結構還是保留了
刪除表;
show tables; --- 查詢當前庫的表
drop table db1.t3; ----刪除表
可以看到原本的t3表已經刪除了。
刪除庫;
show databases; ---查詢當前庫
drop database db1; ---刪除庫
可以看到原本的db1庫已經刪除了。
mysql資料庫備份恢復
備份資料庫示例;
1. show databases; ---查詢庫
2.退出mysql利用mysqldump工具進行備份
mysqldump -uroot -pmysql mysql > /beifen/mysql.sql ---備份mysql到beifen目錄改名為sql字尾
3.cd 查詢是否備份成功
4.恢復資料庫
1.我先刪除原先的mysql
drop database mysql;
2.進行恢復
mysql -uroot -pmysql </beifen/mysql.sql
進入表檢視
show tables;
備份表
備份表;mysqldump -uroot -pmysql mysql mysql t1 >/beifen/t1.sql
恢復表;mysql -uroot -pmysql mysql < /beifen/t1.sql
備份所有庫;mysqldump -uroot -Pmysql -A >/beifen/quanbu.sql
只備份表結構;mysqldump -uroot -Pmysql -d mysql >/beifen/jiegou.sql