1. 程式人生 > >24 MYSQL常用操作

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