MySQL經常使用操做

13.1 設置更改root密碼

進入MySQL的命令:mysql

#/usr/local/mysql/bin/mysql -urootsql

首次進入是不用密碼的,退出輸入quit或者exit便可。shell

咱們把MySQL的路徑加入環境變量中:數據庫

#PATH=$PATH:/usr/local/mysql/bin服務器

而後設置爲開機加載:網絡

#echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profileide

而後刷新一下:#source /etc/profile,再進入MySQL:ui

-u用來指定要登陸的用戶,後面可加可不加空格。root用戶是MySQL自帶的管理員帳戶,默認是沒有密碼的,那麼如何給root設定密碼呢?加密

mysqladmin -uroot password '123456',這樣即給root用戶設定了密碼123456。此時再登陸MySQL的話,就會報錯,要求從新輸入密碼登陸:spa

那麼,若是在不知道root密碼,或者忘記root密碼的狀況下,怎麼去登陸MySQL呢?

咱們首先編輯配置文件/etc/my.cnf,在[mysqld]裏面添加skip-grant(意思是忽略受權),而後重啓mysql服務:/etc/init.d/mysqld restart,此時再去登陸MySQL就不須要密碼了。

而後選擇mysql表:

查看root用戶的密碼(是加密的):

更改root用戶密碼爲123456:

再把配置文件/etc/my.cnf裏的[mysqld]下的skip-grant刪除掉,保存後重啓mysql服務。再登陸MySQL,就會要求輸入密碼,此時輸入剛纔更改的密碼登陸便可。


13.2 鏈接mysql

mysql -uroot -p123456

mysql -uroot -p123456 -h127.0.0.1 -P3306用於鏈接網絡中某一主機上的MySQL

mysql -uroot -p123456 -S/tmp/mysql.sock適合本機登陸使用。

mysql -uroot -p123456 -e "show databases"通常用在shell腳本中。


13.3 mysql經常使用命令

一、查詢當前庫:show databases;

二、查詢某個庫的表:切換表use mysql;列出表show tables;

三、查看某個表的所有字段:desc db;若是想顯示的信息更詳細,能夠在後面加上\G

四、查看當前是哪一個用戶:select user();

五、查看當前所使用的數據庫:select database();

六、建立一個新庫:create database db1;

七、建立一個新表:切換到表db1 use db1;create table t1 (`id` int(4), `name` char(40));

八、查看當前數據庫的版本:select version();

九、查看MySQL的當前狀態:show status;

十、查看MySQL的參數:show variables;

十一、修改MySQL的參數(舉例來講,修改參數max_connect_errors):show variables like 'max_connect%'; set global max_connect_errors = 1000; show variables like 'max_connect_errors';

十二、查看當前MySQL服務器的隊列:show processlist;

 


13.4 mysql用戶管理

grant all on *.* to user1 identified by '123456';

其中,all表示全部的權限(讀、寫、查詢、刪除等);.有兩個*,第1個*表示全部的數據庫,後者表示全部的表;identified by 後面跟密碼,用單引號括起來。這裏的user1特指localhost上的user1。

若是是給網絡其餘機器上的某個用戶受權,則要執行以下命令:

grant all on db1.* to 'user2'@'192.168.6.120' identified by '123123';

其中,用戶和主機的IP之間有一個符號@。另外,命令中主機IP能夠用%替代,表示全部主機,以下所示:

grant all on db1.* to 'user3'@'%' identified by '112233';


13.5 經常使用sql語句

一、查詢語句:

(1)、select count(*) from mysql.user;

mysql.user表示MySQL庫的user表,count(*)表示表中共有多少行。

(2)、select * from mysql.db;

表示查詢MySQL庫的db表中的全部數據。也能夠查詢單個字段或者多個字段:

select db 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='zhangjin' where id=1;

四、清空某個表的數據

truncate table db1.t1;

五、刪除表

drop table db1.t1;

六、刪除數據庫

drop database db1;


13.6 mysql數據庫備份恢復

一、MySQL備份

備份庫:mysqldump -uroot -p'123456' mysql > /tmp/mysql.sql

備份表:mysqldump -uroot -p'123456' mysql user > /tmp/user.sql

備份全部庫:mysqldump -uroot -p -A > /tmp/123.sql

只備份表結構:mysqldump -uroot -p'123456' -d mysql > /tmp/mysql.sql

二、MySQL恢復

恢復庫:mysql -uroot -p '123456' mysql < /tmp/mysql.sql

恢復表:mysql -uroot -p'123456' mysql < /tmp/user.sql

相關文章
相關標籤/搜索