Linux 下 MySQL 的常用命令
啟動資料庫設定初始密碼
這一小節介紹在Mac OS、Linux、Windows上啟動關閉重啟MySQL服務,以及部分圖形化介面對服務的操控。安裝完成後,可以使用 service 命令啟動 mysql 服務,在Mac上service
命令不存在。
命令列啟動關閉重啟MySQL服務
在命令列終端啟動 MySQL 非常方便,下面大概介紹幾個平臺通過命令啟動服務的方法。
檢視服務是否啟動
# 還可以這麼檢視,MySQL伺服器是否啟動 ps -ef | grep mysqld # 檢視服務執行的狀態 service mysqld status
Mac OS X 下命令操作
在 Mac 系統下操作起來就非常方便了。安裝完之後就可以在終端上執行全域性命令 mysql.server 命令,假設這個命令沒有,你在系統的MySQL安裝目錄中找到 mysql.server 命令,執行它是一樣的效果。
mysqld start mysql.server start # 1. 啟動 mysql.server stop # 2. 停止 mysql.server restart # 3. 重啟
當你安裝過 MySQL 並沒有找到 mysql.server 命令,那這時你需要找到安裝目錄中的 mysql.server 命令工具了,如 sudo /usr/local/mysql/support-files/mysql.server start
Linux 下命令操作
Linux生態系統中對服務的操作有點區別。其實在 Mac 系統下也可以直接 mysqld start
來啟動服務。
- 啟動:
service mysqld start
- 停止:
service mysqld stop
- 重啟:
service mysqld restart
- 檢視狀態:
service mysqld status
- 檢視狀態:
systemctl status mysqld.service
systemctl是一個systemd工具,主要負責控制systemd系統和服務管理器,在 Linux 系統中可以通過它來啟動 mysql 服務。
啟動過程中有可能會報錯,錯誤處理,通過 systemctl status mysqld.service 和 journalctl -xe 命令檢視服務啟動失敗的原因。
systemctl status mysqld.service ● mysqld.service - SYSV: MySQL database server. Loaded: loaded (/etc/rc.d/init.d/mysqld) Active: failed (Result: exit-code) since 三 2016-11-02 22:14:36 EDT;11s ago Docs: man:systemd-sysv-generator(8) Process: 14940 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE) 11月 02 22:14:34 localhost.localdomain systemd[1]: Starting SYSV: MySQL database server.... 11月 02 22:14:35 localhost.localdomain mysqld[14940]: MySQL Daemon failed to start. 11月 02 22:14:35 localhost.localdomain mysqld[14940]: Starting mysqld: [FAILED] 11月 02 22:14:36 localhost.localdomain systemd[1]: mysqld.service: control process exited, code=exited status=1 11月 02 22:14:36 localhost.localdomain systemd[1]: Failed to start SYSV: MySQL database server.. 11月 02 22:14:36 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state. 11月 02 22:14:36 localhost.localdomain systemd[1]: mysqld.service failed.
# 檢視配置檔案 my.cnf 的位置 whereis my.cnf # 輸出: my: /etc/my.cnf # 編輯 vi /etc/my.cnf
裡面有個 log_error=/var/log/mysqld.log 的配置,通過命令 tail -25 /var/log/mysqld.log 檢視 MySQL 錯誤日誌
2016-01-20T10:00:19.935771Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - No such file or directory) 2016-01-20T10:00:19.935795Z 0 [ERROR] Can't start server: can't create PID file: No such file or directory 160120 18:00:20 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
上面日誌錯誤說,MySQL服務在啟動的時候,不能建立pid檔案。前去看一下 mysqld 檔案是否存在,不存在建立 mysqld 目錄。
# 建立 mysqld 目錄 mkdir -p /var/run/mysqld/ # 啟動MySQL /etc/init.d/mysqld start # 輸出下面內容 # Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details. # [FAILED]
建立 mysqld 目錄還是啟動報錯,按照下面命令嘗試解決問題
ls -ld /var/run/mysqld/ # mysqld 資料夾如果不存在通過命令建立 mkdir /var/run/mysqld # 會輸出下面內容 # drwxr-xr-x. 2 mysql mysql 60 11月 2 22:15 /var/run/mysqld/ chown mysql.mysql /var/run/mysqld/ /etc/init.d/mysqld start
通過檢視目錄 /var/run/mysqld/ 的屬主和屬組還是root,mysql並不能在其中建立檔案,後修改該目錄的屬主和屬組,啟動OK。
建立指令碼cat start-mysql.sh
,這個問題每次都會出現,因為Centos7上MySQL5.7.12系統不相容啟動失敗, 每次開機後手動執行,或放在定時排程裡。
#!/bin/bash
mkdir -p /var/run/mysqld/
chown mysql.mysql /var/run/mysqld/
/etc/init.d/mysqld start
Windows 下命令操作
Windows平臺操作起來有點不順手,個人感覺 Windows 的DOS太難用了,下面簡單的介紹一下操作過程。先找到 MySQL 的安裝位置,如我的電腦的安裝位置是:C:\Program Files\MySQL\MySQL Server 5.7,我就執行這樣的操作:開始->執行->輸入“cmd”開啟命令列,然後輸入“C:”。通過命令進入到 MySQL Server 5.7 的 bin 目錄下,輸入 MySQL 命令列的服務啟用命令,如下:
# net start [mysql服務名] # 啟動 mysql 服務 net start mysql # 停止 mysql 服務 net stop mysql
有很多情況可能導致無法啟動 MySQL,常見解決方法如下:
- 在 CMD 命令中斷執行這條命令 C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin-u root -p shutdown 來關閉MYSQL,如果有密碼根據提示輸入密碼即可。
- 在 CMD 命令中斷,執行net start mysql啟動 MySQL,參考上面方法來啟動 MySQL 服務。
影象介面啟動關閉重啟MySQL服務
Mac OS X 下操作
在 Mac 系統下如果你官方下載安裝就可以在系統偏好設定
> MySQL
裡面點選 Stop MySQL Server
按鈕進行啟動關閉。
通過 XAMMPP 安裝的 MySQL ,這個軟體安裝之後會自動安裝 Apache + MySQL + PHP 對於初學者特別方便,新版本是預設安裝Apache + MariaDB + PHP + Perl
。
Windows 下操作
Windows 系統下啟動關閉重啟MySQL服務。
檢視初始密碼
預設情況下MySQL是有個初始密碼,知道了初始密碼才能改密碼。
[[email protected] home]# grep 'temporary password' /var/log/mysqld.log 2017-07-17T13:40:11.842835Z 1 [Note] A temporary password is generated for [email protected]: b&iu(sf;>ws
設定初始化密碼
啟動後我們需要簡單配置一下 mysql ,預設安裝以後 mysql 的 root 使用者是沒有密碼的,對於生產環境來說,這肯定是不行的,另外還有一些安全相關的設定,可以使用下面這行命令去配置一下,它是一個嚮導,問你一些問題,你要給出答案,比如是否要設定 root 使用者的密碼, 密碼是什麼等等。
mysql_secure_installation Enter current password for root (enter for none): # 解釋:輸入當前 root 使用者密碼,預設為空,直接回車。 Set root password? [Y/n] y # 解釋:要設定 root 密碼嗎?輸入 y 表示願意。 Remove anonymous users? [Y/n] y # 解釋:要移除掉匿名使用者嗎?輸入 y 表示願意。 Disallow root login remotely? [Y/n] y # 解釋:不想讓 root 遠端登陸嗎?輸入 y 表示願意。 Remove test database and access to it? [Y/n] y # 解釋:要去掉 test 資料庫嗎?輸入 y 表示願意。 Reload privilege tables now? [Y/n] y # 解釋:想要重新載入許可權嗎?輸入 y 表示願意。
你安裝成功後,可以檢視一下 MySQL 版本,mysql --version
,如果版本並非你所使用的版本,你可以參考這裡進行升級資料庫操作Centos6下升級MySQL資料庫。
啟動報錯處理
下面是我嘗試在Mac上啟動MySQL報錯
啟動失敗
sudo /usr/local/mysql/support-files/mysql.server start Password: Starting MySQL . ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid
通過日誌檢視報錯資訊
# 編輯配置檔案 sudo vim /etc/my.cnf # 在配置檔案最後新增一行錯誤日誌輸入的配置 log_error = /usr/local/mysql/data/error.log
上面新增完成之後,重新啟動再檢視日誌
sudo /usr/local/mysql/support-files/mysql.server start tail -100 /usr/local/mysql/data/error.log
日誌顯示錯誤一
2017-01-19T03:48:24.695505Z 0 [ERROR] InnoDB: Unable to lock ./ibdata1 error: 35
2017-01-19T03:48:24.695540Z 0 [Note] InnoDB: Check that you do not already have another mysqld process using the same InnoDB data or log files.
日誌顯示 mysqld 程序使用相同的InnoDB data 檔案或日誌檔案,通過 ps -ef | grep mysql | grep -v grep
檢視是否有該程序,發現果然有,這時候你需要殺掉該程序,我在我本地是殺不掉的,於是我嘗試使用 mysqld 啟動MySQL,啟動成功。
sudo /usr/local/mysql/bin/mysqld restart
日誌顯示錯誤二
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
上面的錯誤資訊說的是 ibdata1
檔案不可寫。ibdata1
是InnoDB的共有表空間,預設情況下會把表空間存放在一個檔案ibdata1
中,(此原因會造成這個檔案越來越大)。所以大概能猜測是 mysql 使用者的許可權不夠了。所以再給 ibdata1
目錄分配一下許可權即可。
這個時候需要檢視一下mysql 安裝目錄許可權。使用 chown 改變了整個 mysql 目錄的許可權,這是一個非常不好的習慣。
cd /usr/local/mysql sudo chown -R _mysql:_mysql *
這裡需要注意的是,Mac OS系統下,mysql 的使用者組和使用者名稱都是 _mysql
,Linux 是 mysql
。然後再重啟 MySQL 你就完事大吉了。
上面除錯定位錯誤的方法非常有用。我通過這個方法多次解決各種問題。
相關推薦
Linux下Mysql常用命令總結
很久沒有寫部落格啦,大概有一年了,還記得以前找工作前瘋狂的總結,後期慢慢的有些懈怠,最近總結了一下自己的問題,覺得部落格這個方式是一個很好的學習方式,還是不能丟掉,所以今天又開始寫部落格啦,如果是師妹師弟看到我的這篇文章,也希望對你們有些幫助。 寫這
Linux下 MySQL常用操作命令
1、登入mysql mysql -uroot -p Enter password: 【輸入原來的密碼】 2、修改使用者密碼 mysql> use mysql; mysql> update user set password=passworD("test")
Linux 下 MySql 常用操作命令
1.登入mysql 資料庫 CREATE DATABASE db_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 1.
linux下FTP常用命令
中一 下載 遠程服務器 file 斷開連接 上傳 服務 上傳文件 會有 1. 連接ftp服務器格式:ftp [hostname| ip-address]a)在linux命令行下輸入:ftp 192.168.1.1b)服務器詢問你用戶名和密碼,分別輸入用戶名和相應密碼,待認證
Linux 操作MySQL常用命令行
數據 logs 相關 entry 註意 新增 otto delet 記錄 Linux 操作MySQL常用命令行註意:MySQL中每個命令後都要以分號;結尾。 1、顯示數據庫 mysql> show databases; +----------+ | Datab
linux下git常用命令
繼續 信息 -s linux git merge bsp 兩個 code checkout 1 安裝: sudo apt-get install git 2 創建一個版本庫: 新建一個文件夾,進入這個目錄之後 git init 3 創建一個版本: git
Linux下Mysql 操作命令
root 性能 密碼 簡單 nes pla not 註意 解決 Linux下Mysql 操作命令 一、連接MySQL 格式: mysql -h主機地址 -u用戶名 -p用戶密碼 1、例1:連接到本機上的MYSQL。 首先在打開DOS窗口,然後進入目錄 mysqlbin,
Linux 中 MySQL常用命令
一、 資料庫登入mysql -uroot -p二.、退出資料庫quit 和 exit或ctrl + d三、資料庫操作1. 檢視所有資料庫 show databases;2. 檢視當前使用的資料庫select database();3. 使用資料庫use 資料庫名;4. 建立資料庫create database
linux下gdb常用命令簡介
file <檔名> 載入被除錯的可執行程式檔案。因為一般都在被除錯程式所在目錄下執行GDB,因而文字名不需要帶路徑。示例:(gdb) file gdb-sample rRun的簡寫,執行被除錯的程式。如果此前沒有下過斷點,則執行完整個程式;如果有斷點,則程式暫停在第一個可用斷點
linux 下 svn 常用命令
0、SVN 幫助svn help svn help co //子命令檢視 1、將檔案checkout到本地目錄 svn checkout path(path是伺服器上的目錄) 例如:svn checkout svn://192.168.1.1/pro/doma
linux下sftp常用命令
一、sftp遠端常用命令1、sftp -oPort=9999 [email protected]使用-o選項來指定埠號,-oPort=遠端埠號在linux的shell中執行上面的命令後, linux shell會提示使用者輸入密碼, 輸入password就成功建
Ubuntu下Mysql常用命令詳解
Mysql安裝目錄 資料庫目錄 /var/lib/mysql/ 配置檔案 /usr/share/mysql(mysql.server命令及配置檔案) 相關命令 /usr/bin(mysqladmin mysqldump等命令) 啟動指令碼 /et
linux下mongodb常用命令記錄
一.使用步驟 任意路徑執行命令: mongo 進入後先進入指定資料庫: use database 然後進行身份驗證: db.auth(
Linux下的常用命令
顯示完整時間資訊 date 顯示年/月/日 date+%Y/%m/%d 顯示小時:分鐘 date+%H:%M 顯示日期 cal 顯示某年的 12個月的日曆 cal 20xx 計算器 bc ch(表示改變) 改變檔
linux下vi常用命令
進入vi vi filename # 開啟或新建檔案,並將游標置於第一行首vi +n filename # 開啟檔案,並將游標置於第n行首vi + filename # 開啟檔案,並將游標置於最後一行首vi +/pattern filename # 開啟檔案,並
linux 操作mysql常用命令列
Linux 操作MySQL常用命令列 注意:MySQL中每個命令後都要以分號;結尾。 1.連線資料庫 mysql -uroot -p Enter password: ** Mysql> 出現mysql>說明成功連線到資料 2.顯
linux下執行常用命令出現:command not found
在 linux 下執行類似與 ls、ll、vim 等命令時出現 command not found,並且執行 source /etc/profile 出現 bash: id: command n
linux下nginx常用命令
一、基本指令 首先進入目錄 #cd /usr/local/nginx/sbin/ 啟動nginx #./ng
linux 下 操作mysql 常用命令
linux 下 操作mysql 常用命令 命令 說明 mysql -u user_name -p 登入 ,輸完命令按回車,再輸入密碼(輸密碼時游標不跳動,輸完直接回車即可) show databases; 檢視所有資料庫(注意加上分號“;” 結束) creat
linux下mysql預設安裝目錄和常用命令
MySQL安裝完成後不象SQL Server預設安裝在一個目錄,它的資料庫檔案、配置檔案和命令檔案分別在不同的目錄,瞭解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較複雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。 下面就介紹一下這幾個目