MySQL常用操作

MySQL常用操作


更改root密碼

首先查看MySQL服務有沒有啓動:ps aux |grep mysql

沒啓動把它啓動:/etc/init.d/mysqld start

然後用命令登錄mysql:mysql -uroot    quit退出來

image.png

mysql命令是不能直接在root用戶下用的,因爲他在/usr/local/mysql/bin/mysql目錄下,

需要更改環境變量PATH,增加mysql絕對路徑:export PATH=$PATH:/usr/local/mysql/bin/

image.png

要想永久生效需要把它放到:vi /etc/profile 配置文件裏,放到最後邊

執行:source /etc/profile 環境變量才能生效

命令:mysql -uroot -p -p:指定他的密碼,如果密碼爲空直接回車就進來了

image.png

怎樣設置root密碼:

mysqladmin -uroot password '123456789' (例如我們設12345789)

設置完密碼怎樣進入:

方法一:mysql -uroot -p  然後輸入設定的密碼,例123456789  -p參數意思是指定他的密碼

方法二:mysql -uroot -p '123456789' 直接給他指定上密碼

image.png

更改密碼:

例如我們原來的密碼爲123456789改成987654321,格式如下

mysqladmin -uroot password '123456789' password '987654321'

密碼重置

 第一步,更改配置文件:vi /etc/my.cnf//增加skip-grant 意思是忽略授權,就是在操作mysql的時候省略輸入密碼這一步

 wKiom1mVTteiSO0hAABmCo9Xj2M973.png 

 第二步,重啓mysql服務:/etc/init.d/mysqld restart

image.png

 第三步,登錄mysql輸命令:mysql -uroot 直接就進來來 不需要密碼

 第四步,切換到mysql庫裏邊更改一個表:use mysql;

image.png

 第五步,輸入命令:update user set password=password('aminglinux') where user='root'; 裏邊橫線部分aminglinux是你要設置的新密碼,更改完quit退出來

image.png

 第六步,在編輯:vi /etc/my.cnf 把skip-grant去掉 因爲一直加着它其他用戶也不需要密碼這樣不安全

image.png

 第七步,重啓:/etc/init.d/mysqld start



連接MySQL

 方法有幾種:

 1.連接本機:mysql -uroot -p123456   //-u用戶名;-p密碼

 

2.連接遠程

比如用A服務器去鏈接B服務器的mysql,需要輸入遠程的的IP、端口。

-h選項,遠程mysql的IP。-P選項,意思是指定端口

 例如,用本機連3306端口:mysql -uroot -p123456 -h127.0.0.1 -P3306

 

3.利用socket來鏈接它,這種方法只適合在本機,因爲mysql監聽的是3306端口跟socket。-S來指定它的socket

 mysql -uroot -p123456 -S/tmp/mysql.sock

image.png


4.鏈接mysal之後來操作一些命令 

mysql -uroot -p123456 -e “show databases” -e意思是把所有的數據庫都列出來,這種情況使用在shell腳本里邊

wKiom1mVdqGBZ68-AADytSECJd4294.png



MySQL常用命令

 運行mysql的命令必須要先連接mysql,在mysql裏邊運行這些命令,在外邊是不能識別的,同樣外邊的命令在裏邊也不能識別。

 進入mysql命令:mysql -uroot -p123456789

 1.查詢庫:show databases

show databases;查看都有什麼數據庫

image.png

 

2.切換庫:use

use mysql;切換到某一個庫下邊,例如mysql庫

image.png

 

3.查看庫裏的表:

show tables;把所有表全部列出來


4.查看錶裏的字段:desc

desc user;後邊跟你要查詢的表,如desc user;


5.查看錶怎麼創建的:show create table

show create table user\G; 命令後邊跟你要查看的表,如user表,\G意思是它的豎排顯示

image.png


6.查看當前用戶:select user();

select user();因爲默認登陸的是root

image.png


7.查看當前使用的數據庫:select database();

select database();

image.png

切換一下在查看

image.png


8.創建庫:create database ;

create database db1; (db1,是自己起的庫名字)

image.png

你發現多了一個db1

image.png


9.創建表:

先進入到庫裏邊use db1; 在創建表(例如創建一個叫t1的表):create table t1(`id`  int(4), `name` char(40));

創建完表之後要給他定義字段,第一個字段叫id,格式爲init最長爲4。第二個字段叫name,char字符串,最長爲40

image.png

還可以定義後邊的字段

image.png


10.刪除表:

drop table 後邊跟表的名字

image.png

 

11.查看當前數據庫版本:

select version();

image.png

12.查看數據庫狀態:show status;

13.查看各參數:show variables; 


14.查看指定的參數

例如你想查看但記不清了,只知道前邊,那就可以採用通配來匹配%,例如:show variables like 'max_connect%';

image.png

例如slow相關的

image.png


15.修改參數:

set global max_connect_errors=1000;例如修改max_connect_errors爲1000

image.png


16.查看隊列:

show processlist; 相當於在linux裏邊用ps或者top來查看進程,可以看到哪些用戶在連它,用戶都在進行什麼操作,很重要

image.png

 更完整的查看:show full processlist;

image.png



MySQL創建用戶以及授權

怎樣設置新用戶以及密碼 

grant all on *.* to 'user1' identified by 'passwd'; user1是用戶;passwd意思是你自己設置的密碼

image.png

 創建:grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';

 登錄:mysql -uuser1 -ppasswd -h127.0.0.1 因爲他默認使用的socket,所以要指定-h

給他授權localhost這樣就不用-h指定IP了 

grant all on *.* to 'user1'@'localhost' identified by 'passwd'; 

 mysql -uuser1 -ppasswd

 根據具體的權限去授權:grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';

 針對所有的IP去授權:grant all on db1.* to 'user3'@'%' identified by 'passwd';

 查看所有的授權:show grants;  默認查看的是root,因爲root沒有授權所以是空的

查看指定用戶的授權

需要指定用戶加IP:show grants for [email protected];


常用SQL語句

 怎麼查看其它庫裏的表:select count(*) from mysql.user; 比如查看mysql庫裏的user表

image.png

 查看庫裏所有的內容:select * from mysql.db; 這個*一般不要用,因爲庫裏的東西有很多,耗費時間

 查看一個字段:select db from mysql.db;

image.png

 查看兩個字段:select db,user from mysql.db;

image.png

 模糊查詢:select * from mysql.db where host like '192.168.%'\G;比如查詢以192.168.開頭的ip字段

 插入內容數據:insert into db1.t1 values (1, 'abc');

image.png

name是個字符串儘量要加的上單引號'',數字可以不加

image.png

image.png

 三行都生效:update db1.t1 set name='aaa' where id=1;

image.png

刪除指定id的表:delte from db1.t1 where id=1;

 清空一個表:truncate table db1.t1; 只清空表裏的內容,而表裏的結構還留着。後邊跟表的名字例如db1庫裏的t1表

image.png

 直接刪除表:drop table db1.t1;

image.png

 把數據庫也刪了:drop database db1;

image.png

注意:刪除表和清空表的操作儘量不要做!!!!!!!!!!!!!!!!!!



MySQL數據庫的備份與恢復

 備份庫:mysqldump -uroot -p123456 mysql > /tmp/mysql.sql     -u指定用戶;-p指定密碼;後邊跟你要備份的庫(如mysql),然後把內容重定向到一個文件裏,這個文件就我們備份的庫文件

  image.png

 

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

還可以恢復到其他的庫,比如mysql2,我們先創建一個mysql2庫,命令:

mysql -uroot -paminglinux -e "create database mysql2"

image.png

然後再把它恢復過去

image.png

 

備份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql 在庫後邊加上表名字就行,先庫在表,例如mysql庫裏的user表

image.png


 恢復表 mysql -uroot -p123456 mysql < /tmp/user.sql 只需要寫一個庫的名字就可以,不需要跟表的名字

image.png

 

備份所有庫 mysqldump -uroot -p -A >/tmp/123.sql   -A表示所有

image.png

 

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章