linux复盘:mysql基础
生活随笔
收集整理的這篇文章主要介紹了
linux复盘:mysql基础
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
mysql常用命令
修改路徑修改密碼
/usr/local/mysql/bin/mysql -uroot #進入mysql
vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin #最后加上
source /etc/profile
source命令也稱為“點命令”,也就是一個點符號(.),是bash的內部命令。
功能:使Shell讀入指定的Shell程序文件并依次執行文件中的所有語句
source命令通常用于重新執行剛修改的初始化文件,使之立即生效,而不必注銷并重新登錄。
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; #刪除庫數據備份恢復
當數據庫量小的時候用可以,如果量大了就需要用其他的備份方法備份:
備份指定庫? 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?
轉載于:https://my.oschina.net/u/3655649/blog/1612719
總結
以上是生活随笔為你收集整理的linux复盘:mysql基础的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库副本的自动种子设定(自增长)
- 下一篇: Spring Boot spring m