第十三章、MYSQL經常使用操做

13.1 設置更改root密碼
13.2 鏈接mysql
13.3 mysql經常使用命令
13.4 mysql用戶管理
13.5 經常使用sql語句
13.6 mysql數據庫備份恢復
 
 
13.1 設置更改root密碼
/usr/local/mysql/bin/mysql -uroot
• #更改環境變量PATH,增長mysql絕對路徑,就可直接 mysql -uroot
export PATH=$PATH:/usr/local/mysql/bin/
#讓該命令永久生效,將上面添加PATH的命令放到/etc/prefile文件裏面,而後source  /etc/prefile,讓配置當即生效
 
 mysql -uroot -p123456     #-p輸入密碼 ,密碼正確進入mysql
 
#密碼最好加上單引號,由於若是密碼含有特殊字符便識別不了
 
 mysqladmin -uroot password '123456'    
#設置mysql的root用戶密碼
 
 mysqladmin -uroot -p '123456'  password '1234'            #更改root密碼
 
密碼重置( 不知道密碼
一、編輯mysql配置文件
 vi /etc/my.cnf   
#增長一行內容   skip-grant
#skip-grant 表示忽略受權,即不用用戶名密碼能夠直接登陸
 
二、 重啓mysql服務,讓前面的配置生效
/etc/init.d/mysqld restart
 
三、登陸mysql,更改mysql庫的用戶密碼錶,達到從新設置密碼的目的
mysql -uroot                  #登陸mysql
use mysql;                    #切換到mysql庫
update user set  password=password('123456') where user='root';            #修改root密碼爲123456
 
四、編輯mysql配置文件,將增長的skip-grant刪掉,而後重啓mysqld服務
 
 
13.2 鏈接mysql
鏈接mysql的命令
mysql -uroot -p123456
#鏈接本機mysql
 
mysql -uroot -p123456 -h127.0.0.1 -P3306
#鏈接遠程mysql,須要-h輸入ip,還有-P指定端口
 
mysql -uroot -p123456 -S/tmp/mysql.sock

 

#經過-S指定socket文件進行連接 (只適用於本機)
 
mysql -uroot -p123456 -e 「show databases」
#-e選項,不進入mysql對數據庫的內容進行操做( 通常使用在shell腳本里面
#不進入mysql將全部的數據庫列出來
 
 
13.3 mysql經常使用命令
一、查詢庫       show databases;
 
二、切換庫       use mysql;
 
三、 查看庫裏的表      show tables;
 
四、查看錶裏的字段   desc tb_name;
 
五、 查看建表語句     
show create table tb_name\G;           
 #\G的做用是使數據排列整齊
 
 
六、 查看當前用戶     select user();
#會將ip反解析成主機名,跟在用戶名後面
 
七、查看當前使用的數據庫   select databsase();
 
八、建立庫    create database db1;
 
九、建立表   
use db1;
 create table t1(`id` int(4), `name` char(40));
 
十、查看查看建立表的語句
show create  tables  t1\G;
 
#mysql默認的字符集是latin1,能夠修改,只須要在建立表的語句指定字符集,好比: create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT  CHARSET=utf8
 
#在不想執行的語句開頭加上#號,語句便不執行
 
十一、刪除表      drop  table t1;
 
十二、查看當前數據庫版本    select version();
 
1三、 查看數據庫狀態      show status;
 
1四、查看各參數    
show variables;            #查看全部參數
show variables like 'max_connect%';
#查看指定參數包含max_connect, %表示通配
 
1五、修改參數   
 set global max_connect_errors=1000;
 
1六、查看隊列  
show processlist;             #最後一列不完整
show full processlist;   #加上full,最後一列完整列出
 
#使用mysql數據庫後會在root目錄下生成.mysql_history的文件,能夠查看mysql命令歷史
 
 
13.4 mysql用戶管理
#grant語句是不會記錄到命令歷史裏面的,由於不安全
 
grant語句說明:
#grant指定權限,@後面指定用戶只能經過來源ip進行登陸或者localhost,identified by指定用戶密碼
#@指定localhost時,對應的是socket文件
 
grant all on *.* to 'user1'@'127.0.0.1   identified by 'passwd';
#建立mysql用戶user1,設定密碼爲passwd,授於全部權限,限定只能經過127.0.0.1進行登陸
 
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.233.1' identified by 'passwd';
#建立用戶user2,密碼爲passwd,授予容許在db1庫查,改,增的權限,限定只能192.168.233.1進行登陸
 
grant all on db1.* to 'user3'@'%' identified by 'passwd'
#%表示通配,這裏指的是全部的ip
#建立user3,密碼爲passwd,授於全部權限,容許全部ip進行登陸
 
show grants;         #查看當前用戶的權限語句
 
show grants for user2@192.168.233.1;
#查看指定用戶的受權語句
 
 
退出mysql的三種方式:
一、quit
二、exit
三、CTRL+D
 
 
13.5 經常使用sql語句
一、select查看語句
select count(*) from mysql.user;
#count指的是行數,庫和表之間用"."點進行隔開
#查看mysql庫中user表的行數
 
當使用select * from的操做時,( 建議少用這個*操做)
mysql庫裏面全部的表默認使用的引擎是MyISAM,該引擎會自動統計表的行數,因此就算用*操做時查詢會快一點;
可是 其餘庫裏面全部的表默認使用的引擎是InnoDB,用*操做時會很慢,很消耗內存。
 
select * from mysql.db; 
#這裏的*指的是全部內容
#查看mysql庫的db表的全部內容
 
select db from mysql.db;
#查看mysql庫的db表的db字段
 
select db,user from mysql.db;
#查看mysql庫的db表的db字段和user字段
#多個字段查詢用逗號隔開便可","
 
select * from mysql.db where host like '192.168.%';
#模糊查詢,查看mysql庫的db表中與192.168.%有關的內容
 
二、insert插入語句
insert into db1.t1 values (1, 'abc');
#在db1庫的t1表內插入數據(1,'abc')
 
desc db1.t1;
insert into db1.t1 values (1, 'abc');
select * from  db1.t1;
 
三、update更改語句
update db1.t1 set name='aaa' where id=1;
#更改db1庫t1表內id=1的行的name字段爲aaa
#where前面的條件是查找,後面的條件是替換
 
四、delete刪除表內容
delete  from  db1.t1 where  id=2;
#刪除db1庫t1表內id=2的行
 
五、truncate清空表內容
truncate table db1.t1;
#將db1庫t1表的內容清空
 
六、drop刪除表或庫
drop table db1.t1;
#刪除db1.t1表
 
drop database db1;
#刪除db1庫
 
delete、truncate、drop的區別
一、delete、truncate只是刪除表的內容,表結構沒有變化
二、drop直接刪除表,表結構發生變化
 
 
13.6 mysql數據庫備份恢復
#備份用mysqldump,恢復用mysql
一、備份庫 
語法:
mysqldump  -uroot -p密碼  備份的庫名 
 
 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
#將備份的mysql庫重定向到/tmp/mysql.sql文件內
 
二、恢復庫 
mysql -uroot -p123456 mysql < /tmp/mysql.sql
 
演示:建立一個新的庫mysql2,而後將備份的mysql庫數據傳到mysql2庫
mysql -uroot -p123456 -e "create database mysql2"       #建立mysql2庫
 
mysql -uroot -p123456 mysql < /tmp/mysql.sql        
將備份的/tmp/mysql.sql 文件反向重定向到mysql2庫
 
三、備份表 
mysqldump -uroot -p123456 mysql user > /tmp/user.sql文件
#備份mysql庫的user表到/tmp/user.sql
 
四、恢復表 
mysql -uroot -p123456 mysql < /tmp/user.sql
#要恢復表只須要寫表所在的庫名便可
 
五、備份全部庫-A 
mysqldump -uroot -p123456  -A >/tmp/123.sql
#-A表示全部all的意思
#備份因此庫到/tmp/123.sql文件
 
六、只備份表結構-d
mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql
#備份mysql庫中的表結構
 
 
擴展
 
 
mysql 配置詳解: http://blog.linuxeye.com/379.html
 
 
同窗分享的親身mysql調優經歷: http://www.apelearn.com/bbs/thread-11281-1-1.html
 
 
什麼是事務?事務的特性有哪些? http://blog.csdn.net/yenange/article/details/7556094
 
根據binlog恢復指定時間段的數據 http://www.javashuo.com/article/p-mfppegny-r.html
 
13.1 設置更改root密碼
13.2 鏈接mysql
13.3 mysql經常使用命令
13.4 mysql用戶管理
13.5 經常使用sql語句
13.6 mysql數據庫備份恢復
 
 
13.1 設置更改root密碼
/usr/local/mysql/bin/mysql -uroot
• #更改環境變量PATH,增長mysql絕對路徑,就可直接 mysql -uroot
export PATH=$PATH:/usr/local/mysql/bin/
#讓該命令永久生效,將上面添加PATH的命令放到/etc/prefile文件裏面,而後source  /etc/prefile,讓配置當即生效
 
 mysql -uroot -p123456     #-p輸入密碼 ,密碼正確進入mysql
 
#密碼最好加上單引號,由於若是密碼含有特殊字符便識別不了
 
 mysqladmin -uroot password '123456'    
#設置mysql的root用戶密碼
 
 mysqladmin -uroot -p '123456'  password '1234'            #更改root密碼
 
密碼重置( 不知道密碼
一、編輯mysql配置文件
 vi /etc/my.cnf   
#增長一行內容   skip-grant
#skip-grant 表示忽略受權,即不用用戶名密碼能夠直接登陸
 
二、 重啓mysql服務,讓前面的配置生效
/etc/init.d/mysqld restart
 
三、登陸mysql,更改mysql庫的用戶密碼錶,達到從新設置密碼的目的
mysql -uroot                  #登陸mysql
use mysql;                    #切換到mysql庫
update user set  password=password('123456') where user='root';            #修改root密碼爲123456
 
四、編輯mysql配置文件,將增長的skip-grant刪掉,而後重啓mysqld服務
 
 
13.2 鏈接mysql
鏈接mysql的命令
mysql -uroot -p123456
#鏈接本機mysql
 
mysql -uroot -p123456 -h127.0.0.1 -P3306
#鏈接遠程mysql,須要-h輸入ip,還有-P指定端口
 
mysql -uroot -p123456 -S/tmp/mysql.sock
#經過-S指定socket文件進行連接 (只適用於本機)
 
mysql -uroot -p123456 -e 「show databases」
#-e選項,不進入mysql對數據庫的內容進行操做( 通常使用在shell腳本里面
#不進入mysql將全部的數據庫列出來
 
 
13.3 mysql經常使用命令
一、查詢庫       show databases;
 
二、切換庫       use mysql;
 
三、 查看庫裏的表      show tables;
 
四、查看錶裏的字段   desc tb_name;
 
五、 查看建表語句     
show create table tb_name\G;           
 #\G的做用是使數據排列整齊
 
 
六、 查看當前用戶     select user();
#會將ip反解析成主機名,跟在用戶名後面
 
七、查看當前使用的數據庫   select databsase();
 
八、建立庫    create database db1;
 
九、建立表   
use db1;
 create table t1(`id` int(4), `name` char(40));
 
十、查看查看建立表的語句
show create  tables  t1\G;
 
#mysql默認的字符集是latin1,能夠修改,只須要在建立表的語句指定字符集,好比: create table t1(`id` int(4), `name` char(40)) ENGINE=InnoDB DEFAULT  CHARSET=utf8
 
#在不想執行的語句開頭加上#號,語句便不執行
 
十一、刪除表      drop  table t1;
相關文章
相關標籤/搜索