一引言
想使用Linux已經很長時間了由於沒有硬性任務一直也沒有系統學習近日由於工作需要必須使用Linux下的MySQL本以為有Windows下使用SQL Server的經驗覺得在Linux下安裝MySql應該是易如反掌的事可在真正安裝和使用MySQL時走了很多彎路遇見很多問題畢竟Linux 和Windows本身就有很大區別為了讓和我一樣的初學者在學習的過程中少走彎路盡快入門寫了此文希望對您有所幫助本文的Linux環境是 Red Hat MySQL是
二安裝Mysql
下載MySQL的安裝文件
安裝MySQL需要下面兩個文件
MySQLserverirpm
MySQLclientirpm
下載地址為/downloads/l打開此網頁下拉網頁找到Linux x RPM downloads項找到Server和Client programs項下載需要的上述兩個rpm文件
安裝MySQL
rpm文件是Red Hat公司開發的軟件安裝包rpm可讓Linux在安裝軟件包時免除許多復雜的手續該命令在安裝時常用的參數是 –ivh 其中i表示將安裝指定的rmp軟件包V表示安裝時的詳細信息h表示在安裝期間出現#符號來顯示目前的安裝過程這個符號將持續到安裝完成後才停止
)安裝服務器端
在有兩個rmp文件的目錄下運行如下命令
[root@test local]# rpm ivh MySQLserverirpm
顯示如下信息
warning: MySQLserverirpm: V DSA signature: NOKEY key ID ef
Preparing ########################################### [%]
:MySQLserver ########################################### [%]
(省略顯示)
/usr/bin/mysqladmin u root password \newpassword\
/usr/bin/mysqladmin u root h test password \newpassword\
(省略顯示)
Starting mysqld daemon with databases from /var/lib/mysql
如出現如上信息服務端安裝完畢測試是否成功可運行netstat看Mysql端口是否打開如打開表示服務已經啟動安裝成功Mysql默認的端口是
[root@test local]# netstat nat
Active Internet connections (servers and established)
Proto RecvQ SendQ Local Address Foreign Address State
tcp : :* LISTEN
上面顯示可以看出MySQL服務已經啟動
)安裝客戶端
運行如下命令
[root@test local]# rpm ivh MySQLclientirpm
warning: MySQLclientirpm: V DSA signature: NOKEY key ID ef
Preparing ########################################### [%]
:MySQLclient########################################### [%]
顯示安裝完畢
用下面的命令連接mysql測試是否成功
三登錄MySQL
登錄MySQL的命令是mysql mysql 的使用語法如下
mysql [u username] [h host] [p[password]] [dbname]
username 與 password 分別是 MySQL 的用戶名與密碼mysql的初始管理帳號是root沒有密碼注意這個root用戶不是Linux的系統用戶MySQL默認用戶是root由於初始沒有密碼第一次進時只需鍵入mysql即可
[root@test local]# mysql
Welcome to the MySQL monitor Commands end with ; or \\g
Your MySQL connection id is to server version: standard
Type \help;\ or \\\h\ for help Type \\\c\ to clear the buffer
mysql>
出現了mysql>提示符恭喜你安裝成功!
增加了密碼後的登錄格式如下
mysql u root p
Enter password: (輸入密碼)
其中u後跟的是用戶名p要求輸入密碼回車後在輸入密碼處輸入密碼
注意這個mysql文件在/usr/bin目錄下與後面講的啟動文件/etc/initd/mysql不是一個文件
四MySQL的幾個重要目錄
MySQL安裝完成後不象SQL Server默認安裝在一個目錄它的數據庫文件配置文件和命令文件分別在不同的目錄了解這些目錄非常重要尤其對於Linux的初學者因為 Linux本身的目錄結構就比較復雜如果搞不清楚MySQL的安裝目錄那就無從談起深入學習
下面就介紹一下這幾個目錄
數據庫目錄
/var/lib/mysql/
配置文件
/usr/share/mysql(mysqlserver命令及配置文件)
相關命令
/usr/bin(mysqladmin mysqldump等命令)
啟動腳本
/etc/rcd/initd/(啟動腳本文件mysql的目錄)
五修改登錄密碼
MySQL默認沒有密碼安裝完畢增加密碼的重要性是不言而喻的
命令
usr/bin/mysqladmin u root password \newpassword\
格式mysqladmin u用戶名 p舊密碼 password 新密碼
例子
例給root加個密碼
鍵入以下命令
[root@test local]# /usr/bin/mysqladmin u root password
注因為開始時root沒有密碼所以p舊密碼一項就可以省略了
測試是否修改成功
)不用密碼登錄
[root@test local]# mysql
ERROR : Access denied for user: \root@localhost\ (Using password: NO)
顯示錯誤說明密碼已經修改
)用修改後的密碼登錄
[root@test local]# mysql u root p
Enter password: (輸入修改後的密碼)
Welcome to the MySQL monitor Commands end with ; or \\g
Your MySQL connection id is to server version: standard
Type \help;\ or \\\h\ for help Type \\\c\ to clear the buffer
mysql>
成功!
這是通過mysqladmin命令修改口令也可通過修改庫來更改口令
六啟動與停止
啟動
MySQL安裝完成後啟動文件mysql在/etc/initd目錄下在需要啟動時運行下面命令即可
[root@test initd]# /etc/initd/mysql start
停止
/usr/bin/mysqladmin u root p shutdown
自動啟動
)察看mysql是否在自動啟動列表中
[root@test local]# /sbin/chkconfig –list
)把MySQL添加到你系統的啟動服務組裡面去
[root@test local]# /sbin/chkconfig – add mysql
)把MySQL從啟動服務組裡面刪除
[root@test local]# /sbin/chkconfig – del mysql
七更改MySQL目錄
MySQL默認的數據文件存儲目錄為/var/lib/mysql假如要把目錄移到/home/data下需要進行下面幾步
home目錄下建立data目錄
cd /home
mkdir data
把MySQL服務進程停掉
mysqladmin u root p shutdown
把/var/lib/mysql整個目錄移到/home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的數據文件移動到了/home/data/mysql下
找到f配置文件
如果/etc/目錄下沒有f配置文件請到/usr/share/mysql/下找到f文件拷貝其中一個到/etc/並改名為f)中命令如下
[root@test mysql]# cp /usr/share/mysql/f /etc/f
編輯MySQL的配置文件/etc/f
為保證MySQL能夠正常工作需要指明mysqlsock文件的產生位置 修改socket=/var/lib/mysql/mysqlsock一行中等號右邊的值為/home/mysql/mysqlsock 操作如下
f (用vi工具編輯f文件找到下列數據修改之)
# The MySQL server
[mysqld]
port =
#socket= /var/lib/mysql/mysqlsock(原內容為了更穩妥用#注釋此行)
socket= /home/data/mysql/mysqlsock (加上此行)
修改MySQL啟動腳本/etc/rcd/initd/mysql
最後需要修改MySQL啟動腳本/etc/rcd/initd/mysql把其中datadir=/var/lib/mysql一行中等號右邊的路徑改成你現在的實際存放路徑home/data/mysql
[root@test etc]# vi /etc/rcd/initd/mysql
#datadir=/var/lib/mysql (注釋此行)
datadir=/home/data/mysql (加上此行)
重新啟動MySQL服務
/etc/rcd/initd/mysql start
或用reboot命令重啟Linux
如果工作正常移動就成功了否則對照前面的步再檢查一下
八MySQL的常用操作
注意MySQL中每個命令後都要以分號結尾
顯示數據庫
mysql> show databases;
++
| Database |
++
| mysql |
| test |
++
rows in set ( sec)
Mysql剛安裝完有兩個數據庫mysql和testmysql庫非常重要它裡面有MySQL的系統信息我們改密碼和新增用戶實際上就是用這個庫中的相關表進行操作
顯示數據庫中的表
mysql> use mysql; (打開庫對每個庫進行操作就要打開此庫類似於foxpro )
Database changed
mysql> show tables;
++
| Tables_in_mysql |
++
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
++
rows in set ( sec)
顯示數據表的結構
describe 表名;
顯示表中的記錄
select * from 表名;
例如顯示mysql庫中user表中的紀錄所有能對MySQL用戶操作的用戶都在此表中
Select * from user;
建庫
create database 庫名;
例如創建一個名字位aaa的庫
mysql> create databases aaa;
建表
use 庫名
create table 表名 (字段設定列表)
例如在剛創建的aaa庫中建立表name表中有id(序號自動增長)xm(姓名)xb(性別)csny(出身年月)四個字段
use aaa;
mysql> create table name (id int() auto_increment not null primary key xm char()xb char()csny date);
可以用describe命令察看剛建立的表結構
mysql> describe name;
+++++++
| Field | Type | Null | Key | Default | Extra |
+++++++
| id | int() | | PRI | NULL | auto_increment |
| xm | char() | YES | | NULL | |
| xb | char() | YES | | NULL | |
| csny | date | YES | | NULL | |
+++++++
增加記錄
例如增加幾條相關紀錄
mysql> insert into name values(\\\張三\\男\\\);
mysql> insert into name values(\\\白雲\\女\\\);
可用select命令來驗證結果
mysql> select * from name;
+++++
| id | xm| xb| csny |
+++++
| | 張三 | 男| |
| | 白雲 | 女| |
+++++
修改紀錄
例如將張三的出生年月改為
mysql> update name set csny=\\ where xm=\張三\;
刪除紀錄
例如刪除張三的紀錄
mysql> delete from name where xm=\張三\;
刪庫和刪表
drop database 庫名;
drop table 表名
九增加MySQL用戶
格式grant select on 數據庫* to 用戶名@登錄主機 identified by 密碼
例增加一個用戶user_密碼為讓他可以在任何主機上登錄並對所有數據庫有查詢插入修改刪除的權限首先用以root用戶連入MySQL然後鍵入以下命令
mysql> grant selectinsertupdatedelete on ** to user_@% Identified by ;
例增加的用戶是十分危險的如果知道了user_的密碼那麼他就可以在網上的任何一台電腦上登錄你的MySQL數據庫並對你的數據為所欲為了解決辦法見例
例增加一個用戶user_密碼為讓此用戶只可以在localhost上登錄並可以對數據庫aaa進行查詢插入修改刪除的操作(localhost指本地主機即MySQL數據庫所在的那台主機)這樣用戶即使用知道user_的密碼他也無法從網上直接訪問數據庫只能通過 MYSQL主機來操作aaa庫
mysql>grant selectinsertupdatedelete on aaa* to user_@localhost identified by ;
用新增的用戶如果登錄不了MySQL在登錄時用如下命令
mysql u user_ p h (h後跟的是要登錄主機的ip地址)
十備份與恢復
備份
例如將上例創建的aaa庫備份到文件back_aaa中
[root@test root]# cd /home/data/mysql (進入到庫目錄本例庫已由val/lib/mysql轉到/home/data/mysql見上述第七部分內容)
[root@test mysql]# mysqldump u root p opt aaa > back_aaa
恢復
[root@test mysql]# mysql u root p ccc < back_aaa
From:http://tw.wingwit.com/Article/program/MySQL/201311/29473.html