更改root密碼:
首次進入數據庫是不用密碼的:
退出的話,直接輸入quit或者exit即可。爲了使用方便,我們把mysql加入到系統的環境變量PATH裏面。
臨時修改:PATH=$PATH:/usr/local/bin/mysql/bin
永久修改:echo "PATH=$PATH:/usr/local/bin/mysql/bin" >> /etc/profile 修改後記得source /etc/profile 讓配置生效。接下來輸入mysql -uroot 就能進入mysql了。
這裏解釋一下圖中-u 的含義,它用來指定要登錄的用戶,後邊可以有空格,也可以無空格,root用戶是mysql自帶的管理員賬戶,默認沒有密碼的,那麼如何給root用戶設定密碼?按如下操作:
使用mysqladmin修改密碼後,在使用剛纔的登錄命令就報錯了。
這是我們應該這樣登錄:(-p加上你的密碼)
如果忘記root密碼應該怎麼重置呢:
修改mysql配置文件/etc/my.cnf,添加skip-grant
然後重啓mysql服務 /etc/init.d/mysqld restart
mysql -uroot
use mysql;
update user set password=password('123123') where user='root';
連接MySQL:
使用密碼連接本機的數據庫:mysql -uroot -p
使用sock文件連接本機數據庫:mysql -uroot -p123456 -S/tmp/mysql.sock
命令行執行mysql查詢命令:mysql -uroot -p123456 -e "show databases"
連接遠程的數據庫:mysql -uroot -p -h192.168.128.28 -P3306 (-h:指定遠程主機IP,-P指定mysql端口)
MySQL常用命令:
查詢當前的庫:show databases;
查詢某個庫的表:先切換庫use mysql; 再執行show tables;
查看某個表的全部字段:desc show_log; 也可以使用show create table show_log\G; 直接查看建表語句
查看當前是那個用戶:select user();
查看當前所使用數據庫:select database();
創建一個新庫:create database db1;
創建一個新表:切換庫use db1; 建表:create table t1 (`id` int(4),`name` char(40)); 要注意的是,字段名需要用反引號括起來
查看數據庫當前版本:select version();
查看當前mysql狀態:show status;
查看mysql參數:show variables;
修改mysql的參數:show variables like 'max_connect%'; set global max_connect_errors = 1000; show variables like 'max_connect_errors';
查看當前mysql服務器的隊列:show processlist;
查看隊列:show processlist; show full processlist;
MySQL用戶管理:
grant all on *.* to 'user1' identified by '123456';
all 表示所有的權限(讀、寫、查詢、刪除等等操作), *.* 前面的 * 表示所有的數據庫,後面的 * 表示所有的表,identified by 後面跟密碼,用單引號括起來。這裏的user1指的是localhost上的user1
grant all on db1.* to 'user2'@'192.168.2.102' identified by '123456';
指定IP的用戶授權,用戶和主機的IP之間有一個@,另外主機IP那裏可以用%替代,表示所有主機.
grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; //授權部分權限
grant all on db1.* to 'user3'@'%' identified by 'passwd'; //所有主機授權
show grants; //查看授權
show grants for [email protected]; //查看指定用戶的授權
如果用戶的授權ip變了,就要執行show grants for [email protected]; 拿到結果後,複製結果,修改ip執行(這樣就實現了實現添加多個可用ip)
常用sql語句:
查詢某表有多少列:select count(*) from mysql.user; (mysql.user表示mysql庫的user表;count(*)表示表中共有多少行)
查詢表內所有數據:select * from mysql.db;
查詢表內某些字段:select db,user from mysql.db;
查詢時使用%模糊匹配:select * from mysql.db where host like '192.168.%';
插入一行: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;
MySQL數據庫備份恢復:
備份庫 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql
恢復庫 mysql -uroot -p123456 mysql < /tmp/mysql.sql
備份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql
恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql
備份所有庫 mysqldump -uroot -p -A >/tmp/123.sql
只備份表結構 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql