root用戶是MySQL的超級管理員用戶,它跟linux系統裏的root用戶相似,固然這個root用戶並非系統的root用戶,咱們也能夠建立一個普通用戶來鏈接MySQL,默認MySQL的root用戶密碼爲空,能夠不用輸入密碼,直接就能連上,但這樣並不安全,所以須要給root用戶設置密碼,假如設置完密碼後有一段時間不用又忘記了,這又涉及到重置密碼。php
一、查看MySQL服務是否啓動html
# ps aux |grep mysqldmysql
若是沒有啓動的話須要使用如下命令啓動mysql服務linux
# /etc/init.d/mysqld startweb
二、首次登錄mysqlsql
安裝好mysql後首次登錄mysql是不須要密碼的,由於系統默認MySQL的root用戶密碼爲空,咱們使用下面這個命令登錄shell
# /usr/local/mysql/bin/mysql -uroot //下圖能夠看到已經成功登陸到mysql了數據庫
三、修改環境變量vim
上面的登陸命令比較長,咱們也可使用下面的命令登錄安全
# mysql -uroot
上圖看到咱們不能直接使用這個命令,這是由於如今環境變量中尚未/usr/local/mysql/bin/這個路徑,
# echo $PATH
因此咱們須要先將/usr/local/mysql/bin/這個路徑加入到環境變量中去,以下:
# export PATH=$PATH:/usr/local/mysql/bin/
設置完畢,咱們再來使用簡化命令登錄,下圖能夠看到,登錄成功
# mysql -uroot
可是這也只是臨時生效,若是想要永久生效,還必須把上面的s設置export PATH=$PATH:/usr/local/mysql/bin/加入到/etc/profile這個文件中去,能夠放到文件的最後一行
# vi /etc/profile
# source /etc/profile //這行命令要修改完成profile文件後執行,執行完這條命令後,就能永久生效了
四、設置密碼並使用密碼登陸mysql
密碼登陸帳號的命令是
# mysql -uroot -p //此時咱們還未設置登陸密碼,在系統要求輸入密碼時直接按回車鍵
這時咱們能夠先退出mysql來,設置好密碼後再使用密碼登陸,設置密碼的命令是;
# mysqladmin -uroot password '112233' //設置root用戶的密碼是112233
上圖的警告是提示咱們設置的密碼在當前行內顯示出來了,這樣不安全,能夠忽略,上面設置好密碼後咱們就不能使用命令# mysql -uroot 這個命令來登陸了
這時候咱們就必需使用密碼來登陸
# mysql -uroot -p //在系統提示輸入密碼的地方輸入咱們以前設置好的密碼便可登陸成功
五、修改密碼
若是咱們知道root用戶原來的密碼,如今想要修改爲新的密碼,須要使用下面的命令
# mysqladmin -uroot -p'112233' password '123123'
修改完成後,咱們直接將密碼寫在命令中來登陸
# mysql -uroot -p'123123' //注意此處的密碼是用單引號引發來的,咱們也能夠不使用單引號,可是密碼中有可能出現#號、分號等特殊符號,這些特殊符號在linux命令行下可能不能被識別,所以通常建議將密碼用單引號引發來
六、重置密碼
當咱們不知道root用戶密碼時候,就須要重置密碼後再來登陸,首先咱們須要修改mysql的配置文件
# vim /etc/my.cnf
在配置文件中的[mysqld]下面加入如下內容:
skip-grant //含義是忽略受權,意思是在操做mysql時不須要受權,不用用戶名和密碼便可登陸
修改完配置文件後,還須要從新啓動mysqld服務
# /etc/init.d/mysqld restart
此時咱們再登陸就又不須要輸入密碼 了
# mysql -uroot
登陸進來以後咱們先切換到mysql的庫中
# use mysql
接下來須要去user表中修改密碼,咱們的用戶名密碼就是存在這張表中的,表中還存了些權限、受權等信息,先來看下user表中的內容
mysql> select * from user; //注意這裏一條命令後要加上分號
咱們也能夠查看一下root用戶的密碼
# select password from user where user='root';
能夠看到root用戶的密碼是一長串字符串,這些字符串是用password()這個函數加密事後生成的
如今咱們來修改密碼使用下面這條命令,其中第一個password是字段,第二個password()是給密碼加密的函數
> update user set password=password('112233') where user='root';
到此時,密碼已經修改爲功,咱們就可使用新的密碼來登陸了。可是咱們還須要去將/etc/my.cnf 增長的一行內容刪除,若是不刪除,那麼數據庫全部的用戶均可以不用輸入密碼就能直接登陸,這是很是危險的
修改後重啓mysqld # /etc/init.d/mysqld restart
一、鏈接本機
# mysql -uroot -p123456
二、鏈接遠程數據庫
# mysql -uroot -p123456 -h127.0.0.1 -P3306
三、socket鏈接
以前LNMP時,php有一個socket,咱們可使用TCP/IP鏈接它,也可使用socket鏈接它。mysql一樣,不只監聽了3306端口,還監聽了一個socket
那麼咱們就可使用socket去鏈接它,其實這種方式和第一種鏈接方式是同樣的,第一種鏈接方式是默認就使用mysql.sock這個socket去鏈接
# mysql -uroot -p112233 -S/tmp/mysql.sock
這種使用socket通訊的方式只適合在本機
四、mysql登陸+操做命令
下面命令是鏈接mysql以後還會有一些操做數據庫的命令,執行完成後又退出數據庫,這種方式適用於shell腳本里面
# mysql -uroot -p112233 -e 'show databases'; //執行登錄命令後當即顯示全部的數據庫而後退出數據庫,
一、查詢庫
> show databases; //查看mysql中有哪些數據庫
二、切換庫
> use mysql; //切換到mysql這個庫下面
三、查看庫裏面的表
> show tables; //命令結尾記得加分號
四、查看錶裏面的字段
# desc user; //查看user表裏面的字段
上圖中Field列是字段的名字,Type列是數據類型
五、查看建表語句
# show create table user\G; //其中\G表示豎排顯示
六、查看當前用戶
# select user(); //用於查看當前mysql登陸的用戶是誰
結果查看到的用戶是root@localhost ,其中localhost是登陸用戶所在主機的主機名,mysql是能夠經過登陸時的IP反解析出來主機名,
在mysql內容也是可使用上下方向鍵來查看用過的命令歷史,這些命令歷史記錄存放位置是:
# ls -la //當前位置在/root/下
命令歷史記錄存放在/root/.mysql_history文件中,咱們來查看下:
# vim .mysql_history
一樣的,mysql也支持ctrl+l清屏命令
七、查看當前使用的數據庫
> select database(); //能夠看到當前沒有使用數據庫,因此結果顯示NULL
接下來咱們切換到mysql數據庫中
> use mysql //這條命令是能夠不用分號結尾的
再來查看正在使用的數據庫
> select database(); //此時查看結果顯示正在使用的庫是mysql
八、建立庫
> create database db1; //建立名字爲db1的數據庫
接下來咱們來查看mysql的庫裏面就能夠看到已經多了一個db1庫
九、建立表
首先須要切換到須要建立表的庫中去
> use db1;
隨後在db1這個庫中新建立一張表
> create table t1(`id` int(4),`name` char(50));
這條命令表示的意思是建立一張表,表的名字叫t1,字段有id和name兩個字段,他們的長度分別爲4和50,其中字段須要用單引號引發來
咱們用下面的命令也能夠看到建立這張表的語句是什麼
> show create table t1\G;
上圖能夠看到charset字符集的值爲latin1,若是不想使用這種字符集,咱們也能夠像下面建立表,可是首先咱們將剛纔建立的表t1刪除掉再從新建立
> drop table t1; //刪除表t1
> create table t1(`id` int(4),`name` char(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
這條命令指定了在建立表時使用的引擎和默認字符集
再來查看下錶t1的建立過程
> show create table t1\G;
十、查看當前數據庫的版本
> select version();
十一、查看數據庫狀態
> show status; //將經常使用的一些數據列出來
十二、查看各類參數
> show variables; //能夠看到有不少的參數,這些參數是能夠在my.cnf中定義的
若是隻記得某個參數的一部分,能夠像下面這樣來查看
> show variables like 'max_connect%';
1三、修改參數
咱們能夠在my.cnf配置文件中修改參數,同時也能夠在mysql命令行裏面修改參數,讓修改在內存中生效,好比咱們能夠將最大鏈接錯誤數max_connect_errors的值由100改成1000
> set global max_connect_errors=1000;
這時咱們再來查看最大鏈接錯誤數max_connect_errors的值就變成了1000
上面的修改只是臨時有效,若是咱們退出mysql從新登陸後以前的配置就無效了,若是想要重啓mysql後也要生效,須要在my.cnf配置文件中去修改
# vim /etc/my.cnf
1四、查看對列
> show processlist; //相似於在linux中用ps 或者top去查看
也可使用下面的命令來查看更詳細的信息
> show full processlist;
擴展 mysql5.7 root密碼更改 http://www.apelearn.com/bbs/thread-7289-1-1.html myisam 和innodb引擎對比 http://www.pureweber.com/article/myisam-vs-innodb/ mysql 配置詳解: http://blog.linuxeye.com/379.html