CentOS安裝配置MySQL過程詳解


 

1、安裝MySQL

[root@sample ~]# yum -y install mysql-server ← 安裝MySQL

然后,安裝PHP訪問MySQL數據庫的工具“php-mysql”

[root@sample ~]# yum -y install php-mysql ← 安裝php-mysql

 

2、配置MySQL

[root@sample ~]# vi /etc/my.cnf ← 編輯MySQL的配置文件

#定位到這里

[client]
#password             = your_password
port                  = 3306
socket                = /tmp/mysql.sock
default-character-set = utf8

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Default to using old password format for compatibility with mysql 3.x

# clients (those using the mysqlclient10 compatibility package).

old_passwords=1  ← 找到這一行,在這一行的下面添加新的規則,讓MySQL的默認編碼 為UTF-8(假若找不到,就在本文件到底添加)

default-character-set = utf8 ← 添加這一行

啟動MySQL服務,進入MySQL里面運行status查看是否已經全部都是支持了utf8,並讓MySQL在系統重新啟動后隨系統自動啟動。

[root@sample ~]# chkconfig mysqld on ← 設置MySQL服務隨系統啟動自啟動

[root@sample ~]# chkconfig --list mysqld ← 確認MySQL自啟動

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 如果2--5為on的狀態就OK

[root@sample ~]# service mysqld start ← 啟動MySQL服務

 

3、設置root用戶密碼及相關優化配置

MySQL在剛剛被安裝的時候,它的root用戶是沒有被設置密碼的,首先來設置MySQL的root密碼。

[root@sample ~]# mysql -u root ← 用root用戶登錄MySQL服務器

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host,password from mysql.user; ← 查看用戶信息

+------+------------------------------+---------------+

| user | host  | password |

+------+------------------------------+---------------+

| root | localhost |  |  ← root密碼為空

| root | sample.centospub.com | |  ← root密碼為空

| | sample.centospub.com |  |

| | localhost |  |

+------+------------------------------+---------------+

4 rows in set (0.00 sec)

mysql> set password for root@localhost=password('yournewpwd');  ← 設置root密碼

Query OK, 0 rows affected (0.01 sec)

mysql> set password for root@'sample.centospub.com'=password('newID'); ← 設置root密碼

Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,password from mysql.user;  ← 查看用戶信息

+------+--------------------------------+--------------------------+

| user | host | password |

+------+--------------------------------+--------------------------+

| root | localhost | 19b68057189b027f |  ← root密碼被設置,已經加密

| root | sample.centospub.com | 19b68057189b027f |  ← root密碼被設置,已經加密

|  | sample.centospub.com |  |

|  | localhost | |

+------+--------------------------------+--------------------------+

4 rows in set (0.01 sec)

mysql> exit  ← 退出MySQL服務器

Bye

   然后,測試一下root密碼有沒有生效。

[root@sample ~]# mysql -u root ← 通過空密碼用root登錄

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)  ← 出現此錯誤信息說明密碼設置成功

[root@localhost ~] # mysql -u root -h sample.centospub.com ← 通過空密碼用root登錄

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)  ← 出現此錯誤信息說明密碼設置成功

[root@sample ~]# mysql -u root -p ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.  ← 確認用密碼能夠成功登錄

Your MySQL connection id is 5 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit

[root@sample ~]# mysql -u root -h sample.centospub.com -p  ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.  ← 確認用密碼能夠成功登錄

Your MySQL connection id is 6 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> exit ← 退出MySQL服務器

Bye

 

刪除匿名用戶

在MySQL剛剛被安裝后,存在用戶名、密碼為空的用戶。這使得數據庫服務器有無需密碼被登錄的可能性,為消除隱患,將匿名用戶刪除。

[root@sample ~]# mysql -u root -p  ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 7 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> select user,host from mysql.user;  ← 查看用戶信息

+------+----------------------------+

| user | host |

+------+----------------------------+

| | localhost  |

| | 127.0.0.1  |

| root | localhost  |

| | sample.centospub.com |

| root | sample.centospub.com |

+------+----------------------------+

4 rows in set (0.02 sec)

mysql> delete from mysql.user where user='';  ← 刪除匿名用戶

Query OK, 2 rows affected (0.17 sec)

mysql> select user,host from mysql.user;  ← 查看用戶信息

+------+----------------------------+

| user | host |

+------+----------------------------+

| root | localhost |

| root | sample.centospub.com |

+------+----------------------------+

2 rows in set (0.00 sec)

mysql> exit  ← 退出MySQL服務器

 

刪除測試用數據庫

  在MySQL被安裝后,存在名為test的空數據庫,將它刪除。這里要注意的是,系統默認的還有一個名為mysql的數據庫,它用於系統管理,所以請不要刪除。

[root@sample ~]# mysql -u root -p ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 8 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show  databases; ← 查看系統已存在的數據庫

+-------------+

| Database |

+-------------+

| mysql |

| test |

+------------+

2 rows in set (0.02 sec)

mysql> drop database test;  ← 刪除名為test的空數據庫

Query OK, 0 rows affected (0.07 sec)

mysql> show databases; ← 查看系統已存在的數據庫

+-------------+

| Database |

+-------------+

| mysql  |  ← 確認名為test的數據庫被刪除,已不存在

+-------------+

1 row in set (0.00 sec)

mysql> exit  ← 退出MySQL服務器

 

4、測試MySQL

下面對MySQL進行測試。包括建立新用戶,以及用對關系性數據庫進行數據庫操作的指令來試着建立數據庫及數據表,這里,新建用戶以centospub為例。

[root@sample ~]# mysql -u root -p ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 9 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all privileges on test.* to centospub@localhost identified by 'newpwd’;  ← 建立對test數據庫有完全操作權限的名為centospub的用戶

Query OK, 0 rows affected (0.03 sec)

mysql> select user from mysql.user where user='centospub';   ← 確認centospub用戶的存在與否

+---------+

| user  |

+---------+

| centospub |  ← 確認centospub已經被建立

+---------+

1 row in set (0.01 sec)

mysql> exit ← 退出MySQL服務器

[root@sample ~]# mysql -u centospub -p  ← 用新建立的centospub用戶登錄MySQL服務器

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 10 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database test;  ← 建立名為test的數據庫

Query OK, 1 row affected (0.00 sec)

mysql> show databases;  ← 查看系統已存在的數據庫

+-------------+

| Database |

+-------------+

| test  |

+-------------+

1 row in set (0.00 sec)

mysql> use test; ← 連接到數據庫

Database changed

mysql> create table test(num int, name varchar(50)); ← 在數據庫中建立表

Query OK, 0 rows affected (0.03 sec)

mysql> show tables; ← 查看數據庫中已存在的表

+-------------------+

| Tables_in_test |

+-------------------+

| test |

+-------------------+

1 row in set (0.01 sec)

mysql> insert into test values(1,'Hello World!'); ← 插入一個值到表中

Query OK, 1 row affected (0.02 sec)

mysql> select * from test;  ← 查看數據庫中的表的信息

+------+-------------------+

| num | name  |

+------+-------------------+

| 1  | Hello World!  |

+------+-------------------+

1 row in set (0.00 sec)

mysql> update test set name='Hello Everyone!'; ← 更新表的信息,賦予新的值

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from test;  ← 查看數據庫中的表的信息

+------+----------------------+

| num | name |

+------+----------------------+

| 1  | Hello Everyone! |  ← 確認被更新到新的值

+------+----------------------+

1 row in set (0.01 sec)

mysql> delete from test where num=1;  ← 刪除表內的值

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;  ← 確認刪除結果

Empty set (0.01 sec)

mysql> drop table test;  ← 刪除表

Query OK, 0 rows affected (0.01 sec)

mysql> show tables; ← 查看表信息

Empty set (0.00 sec)  ← 確認表已被刪除

mysql> drop database test;  ← 刪除名為test的數據庫

Query OK, 0 rows affected (0.01 sec)

mysql> show databases; ← 查看已存在的數據庫

Empty set (0.01 sec)  ← 確認test數據庫已被刪除(這里非root用戶的關系,看不到名為mysql的數據庫)

mysql> exit  ← 退出MySQL服務器

Bye

 

然后,刪除測試用過的遺留用戶。

[root@sample ~]# mysql -u root -p  ← 通過密碼用root登錄

Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 12 to server version: 4.1.20

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> revoke all privileges on *.* from centospub@localhost;  ← 取消centospub用戶對數據庫的操作權限

Query OK, 0 rows affected (0.00 sec)

mysql> delete from mysql.user where user='centospub' and host='localhost'; ← 刪除centospub用戶

Query OK, 1 row affected (0.01 sec)

mysql> select user from mysql.user where user='centospub';  ← 查找用戶centospub,確認已刪除與否

Empty set (0.01 sec)  ← 確認centospub用戶已不存在

mysql> flush privileges;  ← 刷新,使以上操作生效

Query OK, 0 rows affected (0.01 sec)

mysql> exit

Bye

 

5、最后,重新啟動一次HTTP服務,讓php-mysql反映到HTTP服務中。

[root@sample ~]# /etc/rc.d/init.d/httpd restart ← 重新啟動HTTP服務

Stopping httpd: [ OK ]

Starting httpd: [ OK ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM