1. rpm
是
red hat
專有文件
2. mysql
默認安裝路徑爲
/var/lib/mysql
缷載後請手動刪除
3.
若是報不容許鏈接,請修改
mysql
數據庫的
user
表,將
user=root and host=127.0.0.1
改成
host="%"
百分號表明容許全部
IP
訪問
,
並重啓
mysql
----------------------------------------------------------------------------------------------------
red hat
下安裝
mysql:
想使用
Linux
已經很長時間了,因爲沒有硬性任務一直也沒有系統學習,近日因爲工做須要必須使用
Linux
下的
MySQL
。本覺得有
Windows
下使用
SQL Server
的經驗,以爲在
Linux
下安裝
MySql
應該是易如反掌的事,可在真正安裝和使用
MySQL
時走了不少彎路,碰見不少問題,畢竟
Linux
和
Windows
自己就有很大區別。爲了讓和我同樣的初學者在學習的過程當中少走彎路,儘快入門,寫了此文,但願對您有所幫助。
2、安裝
Mysql
1
、下載
MySQL
的安裝文件
安裝
MySQL
須要下面兩個文件:
MySQL-server-
5.0.9
-0.i386.rpm
MySQL-client-5.0.9-0.i386.rpm
下載地址爲:
http://dev.mysql.com/downloads/mysql/5.0.html
,打開此網頁,下拉網頁找到
「Linux x86 RPM downloads」
項,找到
「Server」
和
「Client programs」
項,下載須要的上述兩個
rpm
文件。
2
、安裝
MySQL
rpm
文件是
Red Hat
公司開發的軟件安裝包,
rpm
可以讓
Linux
在安裝軟件包時免除許多複雜的手續。該命令在安裝時經常使用的參數是
–ivh ,
其中
i
表示將安裝指定的
rmp
軟件包,
V
表示安裝時的詳細信息,
h
表示在安裝期間出現
「#」
符號來顯示目前的安裝過程。這個符號將持續到安裝完成後才中止。
1
)安裝服務器端
在有兩個
rmp
文件的目錄下運行以下命令:
[root@test1 local]# rpm -ivh MySQL-server-5.0.9-0.i386.rpm
顯示以下信息。
warning: MySQL-server-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e
1f
5
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
看
Mysql
端口是否打開,如打開表示服務已經啓動,安裝成功。
Mysql
默認的端口是
3306
。
[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
上面顯示能夠看出
MySQL
服務已經啓動。
2
)安裝客戶端
運行以下命令:
[root@test1 local]# rpm -ivh MySQL-client-5.0.9-0.i386.rpm
warning: MySQL-client-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e
1f
5
Preparing...
########################################### [100%]
1:MySQL-client
########################################### [100%]
顯示安裝完畢。
用下面的命令鏈接
mysql,
測試是否成功。
3、登陸
MySQL
登陸
MySQL
的命令是
mysql
,
mysql
的使用語法以下:
mysql [-u username] [-h host] [-p[password]] [dbname]
username
與
password
分別是
MySQL
的用戶名與密碼,
mysql
的初始管理賬號是
root
,沒有密碼,注意:這個
root
用戶不是
Linux
的系統用戶。
MySQL
默認用戶是
root
,因爲初始沒有密碼,第一次進時只需鍵入
mysql
便可。
[root@test1 local]# mysql
Welcome to the MySQL monitor.
Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.0.16-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/init.d/mysql
不是一個文件。
4、
MySQL
的幾個重要目錄
MySQL
安裝完成後不象
SQL Server
默認安裝在一個目錄,它的數據庫文
⑴
渲夢募
兔
釵募
直鷦誆煌
哪柯跡
私庹廡
┠
柯擠淺V匾繞潿雜贚
inux
的初學者,由於
Linux
自己的目錄結構就比較複雜,若是搞不清楚
MySQL
的安裝目錄那就無從談起深刻學習。
下面就介紹一下這幾個目錄。
1
、數據庫目錄
/var/lib/mysql/
2
、配置文件
/usr/share/mysql
(
mysql.server
命令及配置文件)
3
、相關命令
/usr/bin(mysqladmin mysqldump
等命令
)
4
、啓動腳本
/etc/rc.d/init.d/
(啓動腳本文件
mysql
的目錄)
5、修改登陸密碼
MySQL
默認沒有密碼,安裝完畢增長密碼的重要性是不言而喻的。
1
、命令
usr/bin/mysqladmin -u root password 'new-password'
格式:
mysqladmin -u
用戶名
-p
舊密碼
password
新密碼
2
、例子
例
1
:給
root
加個密碼
123456
。
鍵入如下命令
:
[root@test1 local]# /usr/bin/mysqladmin -u root password 123456
注:由於開始時
root
沒有密碼,因此
-p
舊密碼一項就能夠省略了。
3
、測試是否修改爲功
1
)不用密碼登陸
[root@test1 local]# mysql
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
顯示錯誤,說明密碼已經修改。
2
)用修改後的密碼登陸
[root@test1 local]# mysql -u root -p
Enter password: (
輸入修改後的密碼
123456)
Welcome to the MySQL monitor.
Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.16-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
成功!
這是經過
mysqladmin
命令修改口令,也可經過修改庫來更改口令。
6、啓動與中止
1
、啓動
MySQL
安裝完成後啓動文件
mysql
在
/etc/init.d
目錄下,在須要啓動時運行下面命令便可。
[root@test1 init.d]# /etc/init.d/mysql start
2
、中止
/usr/bin/mysqladmin -u root -p shutdown
3
、自動啓動
1
)察看
mysql
是否在自動啓動列表中
[root@test1 local]#
/sbin/chkconfig --list
2
)把
MySQL
添加到你係統的啓動服務組裏面去
[root@test1 local]#
/sbin/chkconfig
– add
mysql
3
)把
MySQL
從啓動服務組裏面刪除。
[root@test1 local]#
/sbin/chkconfig
– del
mysql
7、更改
MySQL
目錄
MySQL
默認的數據文件存儲目錄爲
/var/lib/mysql
。假如要把目錄移到
/home/data
下須要進行下面幾步:
1
、
home
目錄下創建
data
目錄
cd /home
mkdir data
2
、把
MySQL
服務進程停掉:
mysqladmin -u root -p shutdown
3
、把
/var/lib/mysql
整個目錄移到
/home/data
mv /var/lib/mysql
/home/data/
這樣就把
MySQL
的數據文件移動到了
/home/data/mysql
下
4
、找到
my.cnf
配置文件
若是
/etc/
目錄下沒有
my.cnf
配置文件,請到
/usr/share/mysql/
下找到
*.cnf
文件,拷貝其中一個到
/etc/
並更名爲
my.cnf)
中。命令以下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf
/etc/my.cnf
5
、編輯
MySQL
的配置文件
/etc/my.cnf
爲保證
MySQL
可以正常工做,須要指明
mysql.sock
文件的產生位置。
修改
socket=/var/lib/mysql/mysql.sock
一行中等號右邊的值爲:
/home/mysql/mysql.sock
。操做以下:
vi
my.cnf
(
用
vi
工具編輯
my.cnf
文件,找到下列數據修改之
)
# The MySQL server
[mysqld]
port
= 3306
#socket
= /var/lib/mysql/mysql.sock
(原內容,爲了更穩妥用
「#」
註釋此行)
socket
= /home/data/mysql/mysql.sock
(加上此行)
6
、修改
MySQL
啓動腳本
/etc/rc.d/init.d/mysql
最後,須要修改
MySQL
啓動腳本
/etc/rc.d/init.d/mysql
,把其中
datadir=/var/lib/mysql
一行中,等號右邊的路徑改爲你如今的實際存放路徑:
home/data/mysql
。
[root@test1 etc]# vi
/etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql
(註釋此行)
datadir=/home/data/mysql
(加上此行)
7
、從新啓動
MySQL
服務
/etc/rc.d/init.d/mysql
start
或用
reboot
命令重啓
Linux
若是工做正常移動就成功了,不然對照前面的
7
步再檢查一下。
8、
MySQL
的經常使用操做
注意:
MySQL
中每一個命令後都要以分號;結尾。
1
、顯示數據庫
mysql> show databases;
+----------+
| Database |
+----------+
| mysql
|
| test
|
+----------+
2 rows in set (0.04 sec)
Mysql
剛安裝完有兩個數據庫:
mysql
和
test
。
mysql
庫很是重要,它裏面有
MySQL
的系統信息,咱們改密碼和新增用戶,實際上就是用這個庫中的相關表進行操做。
2
、顯示數據庫中的表
mysql> use mysql;
(打開庫,對每一個庫進行操做就要打開此庫,相似於
foxpro
)
Database changed
mysql> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv
|
| db
|
| func
|
| host
|
| tables_priv
|
| user
|
+-----------------+
6 rows in set (0.01 sec)
3
、顯示數據表的結構:
describe
表名
;
4
、顯示錶中的記錄:
select * from
表名
;
例如:顯示
mysql
庫中
user
表中的紀錄。全部能對
MySQL
用戶操做的用戶都在此表中。
Select * from user;
5
、建庫:
create database
庫名
;
例如:建立一個名字位
aaa
的庫
mysql> create databases aaa;
6
、建表:
use
庫名;
create table
表名
(
字段設定列表
)
;
例如:在剛建立的
aaa
庫中創建表
name,
表中有
id(
序號,自動增加
)
,
xm
(姓名)
,xb
(性別)
,csny
(出身年月)四個字段
use aaa;
mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
能夠用
describe
命令察看剛創建的表結構。
mysql> describe name;
+-------+---------+------+-----+---------+----------------+
| Field | Type
| Null | Key | Default | Extra
|
+-------+---------+------+-----+---------+----------------+
| id
| int(3)
|
| PRI | NULL
| auto_increment |
| xm
| char(8) | YES
|
| NULL
|
|
| xb
| char(2) | YES
|
| NULL
|
|
| csny
| date
| YES
|
| NULL
|
|
+-------+---------+------+-----+---------+----------------+
7
、增長記錄
例如:增長几條相關紀錄。
mysql> insert into name values('','
張三
','
男
','1971-10-01');
mysql> insert into name values('','
白雲
','
女
','1972-05-20');
可用
select
命令來驗證結果。
mysql> select * from name;
+----+------+------+------------+
| id | xm
| xb
| csny
|
+----+------+------+------------+
|
1 |
張三
|
男
| 1971-10-01 |
|
2 |
白雲
|
女
| 1972-05-20 |
+----+------+------+------------+
8
、修改紀錄
例如:將張三的出生年月改成
1971-01-10
mysql> update name set csny='1971-01-10' where xm='
張三
';
9
、刪除紀錄
例如:刪除張三的紀錄。
mysql> delete from name where xm='
張三
';
10
、刪庫和刪表
drop database
庫名
;
drop table
表名;
9、增長
MySQL
用戶
格式:
grant select on
數據庫
.* to
用戶名
@
登陸主機
identified by "
密碼
"
例
1
、增長一個用戶
user_1
密碼爲
123
,讓他能夠在任何主機上登陸,並對全部數據庫有查詢、插入、修改、刪除的權限。首先用以
root
用戶連入
MySQL
,而後鍵入如下命令:
mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
例
1
增長的用戶是十分危險的,若是知道了
user_1
的密碼,那麼他就能夠在網上的任何一臺電腦上登陸你的
MySQL
數據庫並對你的數據隨心所欲了,解決辦法見例
2
。
例
2
、增長一個用戶
user_2
密碼爲
123,
讓此用戶只能夠在
localhost
上登陸,並能夠對數據庫
aaa
進行查詢、插入、修改、刪除的操做(
localhost
指本地主機,即
MySQL
數據庫所在的那臺主機),這樣用戶即便用知道
user_2
的密碼,他也沒法從網上直接訪問數據庫,只能經過
MYSQL
主機來操做
aaa
庫。
mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";
用新增的用戶若是登陸不了
MySQL
,在登陸時用以下命令:
mysql -u user_1 -p
-h 192.168.113.50
(
-h
後跟的是要登陸主機的
ip
地址)
10、備份與恢復
1
、備份
例如:將上例建立的
aaa
庫備份到文件
back_aaa
中
[root@test1 root]# cd
/home/data/mysql
(
進入到庫目錄,本例庫已由
val/lib/mysql
轉到
/home/data/mysql
,見上述第七部份內容
)
[root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa
2
、恢復
[root@test mysql]# mysql -u root -p ccc < back_aaa
缷載
mysql:
rpm -e MySQL-server-community-5.1.32-0.rhel5