Red hat linux 下裝mysql5問題總結

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
相關文章
相關標籤/搜索