首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux 環境下 MySQL 安裝與基礎操作完整指南

     編輯:MySQL 資料庫相關知識

前言

因學習需求,我近期開始在 Linux 系統上部署與使用 MySQL。本以為憑藉 Windows 下 SQL Server 的經驗,Linux 上安裝 MySQL 會輕而易舉,實際操作才發現兩者差異極大,走了不少彎路。為了幫助同樣的初學者少走彎路、快速入門,特整理此文,希望能提供實質幫助。

一、MySQL 安裝

1. 下載安裝包

安裝 MySQL 需要以下兩個 RPM 包(以 4.0.16 版本為例):

  • MySQL-server-4.0.16-0.i386.rpm
  • MySQL-client-4.0.16-0.i386.rpm

下載地址:MySQL 官方下載頁。在「Linux x86 RPM downloads」區塊中分別下載 Server 與 Client programs。

2. 安裝步驟

RPM 是 Red Hat 開發的軟體安裝包格式,能簡化安裝流程。常用參數 -ivh 中:i 表安裝、v 顯示詳細資訊、h 以 # 號顯示進度。

(1)安裝服務端

[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h test1 password 'new-password'
Starting mysqld daemon with databases from /var/lib/mysql

出現上述訊息即代表服務端安裝完成。可用 netstat -nat 檢查 3306 端口是否監聽(MySQL 預設端口):

[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

(2)安裝客戶端

[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-client ########################################### [100%]

二、登入 MySQL

登入指令為 mysql,語法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]
  • 預設管理帳號為 root,初始無密碼(非 Linux 系統帳號)。
  • 首次登入僅需輸入 mysql 即可。
  • 設定密碼後登入:mysql -u root -p,按提示輸入密碼。

注意:mysql 執行檔位於 /usr/bin,與啟動腳本 /etc/init.d/mysql 非同一檔案。

三、MySQL 關鍵目錄結構

MySQL 安裝後檔案分散於不同目錄,掌握這些路徑對深入學習至關重要:

用途路徑
資料庫檔案/var/lib/mysql/
配置檔案/usr/share/mysql/ (含 mysql.server 及配置檔)
相關命令/usr/bin/ (mysqladmin, mysqldump 等)
啟動腳本/etc/rc.d/init.d/ (mysql 啟動腳本)

四、修改登入密碼

1. 指令格式

/usr/bin/mysqladmin -u root password 'new-password'
# 格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼

2. 範例:為 root 設定密碼 123456

[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
# 初始無密碼,故 -p 舊密碼可省略

3. 驗證修改結果

  • 無密碼登入失敗:ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
  • 使用新密碼登入成功,出現 mysql> 提示符。

五、啟動、停止與自動啟動

1. 手動啟動/停止

# 啟動
/etc/init.d/mysql start

# 停止
/usr/bin/mysqladmin -u root -p shutdown

2. 設定開機自啟

# 查看是否已在自啟清單
/sbin/chkconfig --list

# 加入自啟服務
/sbin/chkconfig --add mysql

# 移除自啟服務
/sbin/chkconfig --del mysql

六、變更 MySQL 資料目錄

預設資料目錄為 /var/lib/mysql,若需遷移至 /home/data,步驟如下:

  1. 建立目標目錄:mkdir /home/data
  2. 停止服務:mysqladmin -u root -p shutdown
  3. 移動資料:mv /var/lib/mysql /home/data/
  4. 複製配置檔:cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  5. 編輯 /etc/my.cnf,修改 socket 路徑:
    socket = /home/data/mysql/mysql.sock
  6. 編輯啟動腳本 /etc/rc.d/init.d/mysql,修改 datadir:
    datadir=/home/data/mysql
  7. 重啟服務驗證:/etc/rc.d/init.d/mysql start

七、常用資料庫操作

注意:每條指令須以分號 ; 結尾。

1. 顯示資料庫

mysql> show databases;
+----------+
| Database |
+----------+
| mysql    |
| test     |
+----------+

2. 顯示資料表

mysql> use mysql;
mysql> show tables;

3. 查看表結構

describe 表名;

4. 查詢資料

select * from 表名;

5. 建立資料庫

create database 資料庫名;

6. 建立資料表

use 資料庫名;
create table 表名 (欄位定義列表);
# 範例
create table name (
  id int(3) auto_increment not null primary key,
  xm char(8),
  xb char(2),
  csny date
);

7. 新增/修改/刪除記錄

# 新增
insert into name values('','張三','男','1971-10-01');

# 修改
update name set csny='1971-01-10' where xm='張三';

# 刪除
delete from name where xm='張三';

8. 刪除資料庫/資料表

drop database 資料庫名;
drop table 表名;

八、新增 MySQL 使用者

語法:grant 權限 on 資料庫.* to 用戶名@登入主機 identified by "密碼"

範例 1:高風險帳號(不建議生產環境使用)

grant select,insert,update,delete on *.* to user_1@"%" identified by "123";

此帳號可從任意主機連線,擁有全庫增刪改查權限,風險極高。

範例 2:安全帳號(僅限本機存取特定庫)

grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";

僅允許本機連線操作 aaa 庫,大幅降低風險。

遠程連線指定 IP

mysql -u user_1 -p -h 192.168.113.50

九、備份與還原

1. 備份(mysqldump)

cd /home/data/mysql
mysqldump -u root -p --opt aaa > back_aaa

2. 還原

mysql -u root -p ccc < back_aaa

常用 mysqldump 範例

  • 匯出整庫:mysqldump -u 用戶名 -p 資料庫名 > 檔案名
  • 匯出單表:mysqldump -u 用戶名 -p 資料庫名 表名 > 檔案名
  • 僅匯出結構:mysqldump -u 用戶名 -p -d --add-drop-table 資料庫名 > 檔案名
  • 指定字元集:mysqldump -uroot -p --default-character-set=latin1 --set-charset=gbk --skip-opt 資料庫名 > 檔案名
  • 匯入資料:進入 MySQL 後使用 source 檔案路徑
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved