/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 -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腳本中
庫由表組成,表由字段組成 查詢庫 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; #查看指定用戶權限
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