linux覆盤:mysql基礎

mysql經常使用命令

修改路徑修改密碼

/usr/local/mysql/bin/mysql -uroot #進入mysqlmysql

vim /etc/profilelinux

PATH=$PATH:/usr/local/mysql/bin #最後加上nginx

source /etc/profilesql

source命令也稱爲「點命令」,也就是一個點符號(.),是bash的內部命令。shell

功能:使Shell讀入指定的Shell程序文件並依次執行文件中的全部語句數據庫

source命令一般用於從新執行剛修改的初始化文件,使之當即生效,而沒必要註銷並從新登陸。vim

mysql -uroot
mysqladmin -uroot password '123456' #修改密碼
mysql -uroot -p'123456' #-p後面不能有空格,密碼能夠不帶單引號,可是若是有特殊字符時會出現問題

#忘記密碼怎麼辦,有的是辦法
vi /etc/my.cnf
[mysqld]
skip-grant #忽略受權選項,平時生產中不要添加

/etc/init.d/mysqld restart #這樣就不用進入數據庫的受權了,能夠修改密碼了
mysql -uroot
use mysql;
update user set password=password('aminglinux') where user='root';
flush privileges;
#修改完mysql庫的密碼後,再次編輯/etc/my.cnf/把增長的skip-grant刪掉
#不刪掉的話就能夠不用密碼進入任何庫了,很是危險咱們需求只是修改mysql庫的密碼

 鏈接mysql

mysql -uroot -p123456
#此方式只能鏈接本地數據庫localhost,但不少時候都須要鏈接網絡中某一個主機上的mysql
mysql -uroot -p123456 -h127.0.0.1 -P3306
#-h指定遠程主機的IP,-P(後面的)指定遠程主機mysql的綁定端口,默認爲3306
mysql -uroot -p123456 -S/tmp/mysql.sock
#-S:=socket,指定socket。此方法只適用於本地鏈接,等同於「mysql -uroot -p123456」
mysql -uroot -p123456 -e 「show databases」
#顯示全部數據庫,適用於shell腳本中

mysql經常使用命令

庫由表組成,表由字段組成
查詢庫 show databases;
切換到mysql庫 use mysql;

如下命令須要切換庫以後執行:
查看庫裏的表 show tables;
查看錶裏的字段 desc tb_name;
查看建表語句 show create table tb_name\G;
查看當前是哪一個用戶 select user();
查看當前使用的數據庫 select database();

查看全部用戶 select * from user\G;
建立一個新庫 create database db_name;
建立一個新表t1 create table t1(`id` int(4),`name` char(40));
查看當前數據庫版本 select version();
查看mysql當前狀態 show status;
查看全部參數 show variables; 
查看某參數 show variables like 'max_connect%';
修改參數 set global max_connect_errors=1000;
查看mysql進程隊列 show processlist; (用的最多的地方)
查看隊列詳細信息show full processlist;
刪除庫 drop database db_name
刪除表 drop table tb_name
#查看服務器隊列在平常工做中最爲頻繁,由於它能夠查看當前mysql在幹什麼,也能夠發現是否有鎖表

用戶受權管理

建立一個普通用戶並受權
grant all on *.* to 'user1' identified by 'passwd';
建立後指定登陸IP
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a';
#建立user1用戶all表示全部的權限,並授予其全部權限「*.*」(通配符)
#第一個*表示db_name(全部的數據庫);第二個*表示tb_name(全部的表)
#同時指定其來源IP127.0.0.1(即,只可經過此IP登陸)
#此處可使用通配符%,表明全部IP(通常不使用)
#設定密碼:identified by

用戶登陸:使用IP登陸
mysql -uuser1 -p123456 -h127.0.0.1

建立後指定登陸socket(這裏不太清楚後面注意)
grant all on *.* to 'user2'@'localhost' identified by '123456';
用戶的登陸使用socker登陸
mysql -uuser2 -p'123456'
#指定登陸主機爲localhost,因此該用戶默認使用(監聽)本地mysql.socket文件,不須要指定IP便可登陸。
對具體權限進行受權:
create database db1;
#建立一個新庫db1
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';
#建立user2用戶,並授予其針對db1庫SELECT,UPDATE,INSERT權限
grant all on db1.* to 'user3'@'%' identified by 'passwd';show grants;
#建立user3,並針對全部IP授予其db1庫全部權限
#用戶和主機用@分割,主機IP用%代替表示全部主機

show grants;
#查詢當前用戶權限
show grants for user2@192.168.133.1;
#查看指定用戶權限

經常使用sql語句

select count(*) from mysql.user;
#查看指定庫的行數,musql.user表示mysql庫的user表,count(*)表示共有多少行
select * from mysql.db;
#查詢庫的全部內容
select db from mysql.db;
select db,user from mysql.db;
#查看庫指定內容,db表的全部內容
select * from mysql.db where host like '192.168.%';
#查看某些IP對應的庫內容,like表示匹配
insert into db1.t1 values (1, 'abc');
#向表中插入內容
update db1.t1 set name='aaa' where id=1;
#更改表的某一行
truncate table db1.t1;
#清空一個表中內容
drop table db1.t1;
#刪除表
drop database db1;
#刪除庫

數據備份恢復

當數據庫量小的時候用能夠,若是量大了就須要用其餘的備份方法備份:bash

備份指定庫  mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

備份全部庫 mysqldump -uroot -p123456 -A > /tmp/mysql.sql


恢復庫 mysql -uroot -p123456 mysql < /tmp/mysql.sql


備份指定表 mysql -uroot -p123456 mysql user > /tmp/user.sql

只備份表結構 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql


恢復表 mysql -uroot -p123456 mysql user < /tmp/user.sql
相關文章
相關標籤/搜索