1. 程式人生 > >Linux 下 MySQL 的常用命令

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 來啟動服務。

  1. 啟動:service mysqld start
  2. 停止:service mysqld stop
  3. 重啟:service mysqld restart
  4. 檢視狀態:service mysqld status
  5. 檢視狀態:systemctl status mysqld.service

systemctl是一個systemd工具,主要負責控制systemd系統和服務管理器,在 Linux 系統中可以通過它來啟動 mysql 服務。

啟動過程中有可能會報錯,錯誤處理,通過 systemctl status mysqld.servicejournalctl -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,常見解決方法如下:

  1. 在 CMD 命令中斷執行這條命令 C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin-u root -p shutdown 來關閉MYSQL,如果有密碼根據提示輸入密碼即可。
  2. 在 CMD 命令中斷,執行net start mysql啟動 MySQL,參考上面方法來啟動 MySQL 服務。

影象介面啟動關閉重啟MySQL服務

Mac OS X 下操作

在 Mac 系統下如果你官方下載安裝就可以在系統偏好設定 > MySQL 裡面點選 Stop MySQL Server 按鈕進行啟動關閉。

MySQL

通過 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 你就完事大吉了。

上面除錯定位錯誤的方法非常有用。我通過這個方法多次解決各種問題。

相關推薦

LinuxMysql常用命令總結

  很久沒有寫部落格啦,大概有一年了,還記得以前找工作前瘋狂的總結,後期慢慢的有些懈怠,最近總結了一下自己的問題,覺得部落格這個方式是一個很好的學習方式,還是不能丟掉,所以今天又開始寫部落格啦,如果是師妹師弟看到我的這篇文章,也希望對你們有些幫助。   寫這

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.

linuxFTP常用命令

中一 下載 遠程服務器 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

linuxgit常用命令

繼續 信息 -s linux git merge bsp 兩個 code checkout 1 安裝: sudo apt-get install git 2 創建一個版本庫: 新建一個文件夾,進入這個目錄之後 git init 3 創建一個版本: git

LinuxMysql 操作命令

root 性能 密碼 簡單 nes pla not 註意 解決 Linux下Mysql 操作命令 一、連接MySQL 格式: mysql -h主機地址 -u用戶名 -p用戶密碼 1、例1:連接到本機上的MYSQL。 首先在打開DOS窗口,然後進入目錄 mysqlbin,

LinuxMySQL常用命令

一、 資料庫登入mysql -uroot -p二.、退出資料庫quit 和 exit或ctrl + d三、資料庫操作1. 檢視所有資料庫 show databases;2. 檢視當前使用的資料庫select database();3. 使用資料庫use 資料庫名;4. 建立資料庫create database

linuxgdb常用命令簡介

    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

linuxsftp常用命令

一、sftp遠端常用命令1、sftp -oPort=9999 [email protected]使用-o選項來指定埠號,-oPort=遠端埠號在linux的shell中執行上面的命令後, linux shell會提示使用者輸入密碼, 輸入password就成功建

UbuntuMysql常用命令詳解

Mysql安裝目錄 資料庫目錄 /var/lib/mysql/ 配置檔案 /usr/share/mysql(mysql.server命令及配置檔案) 相關命令 /usr/bin(mysqladmin mysqldump等命令) 啟動指令碼 /et

linuxmongodb常用命令記錄

一.使用步驟 任意路徑執行命令: mongo 進入後先進入指定資料庫: use database 然後進行身份驗證: db.auth(

Linux常用命令

顯示完整時間資訊 date 顯示年/月/日 date+%Y/%m/%d 顯示小時:分鐘 date+%H:%M 顯示日期 cal 顯示某年的 12個月的日曆 cal 20xx 計算器 bc ch(表示改變) 改變檔

linuxvi常用命令

進入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

linuxnginx常用命令

一、基本指令 首先進入目錄  #cd /usr/local/nginx/sbin/ 啟動nginx #./ng

linux 操作mysql 常用命令

  linux 下 操作mysql 常用命令   命令 說明 mysql -u user_name -p 登入 ,輸完命令按回車,再輸入密碼(輸密碼時游標不跳動,輸完直接回車即可) show databases; 檢視所有資料庫(注意加上分號“;” 結束) creat

linuxmysql預設安裝目錄和常用命令

MySQL安裝完成後不象SQL Server預設安裝在一個目錄,它的資料庫檔案、配置檔案和命令檔案分別在不同的目錄,瞭解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較複雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。   下面就介紹一下這幾個目