久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

CentOS/構(gòu)建MySQL數(shù)據(jù)庫服務(wù)器

來自站長百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

CentOS | CentOS安裝 | CentOS使用手冊

在提到網(wǎng)站構(gòu)架的時候,我們經(jīng)常能夠看到“LAMP”的說法,它就是“Linux + Apache + MySQL + PHP”。 MySQL+PHP的協(xié)同成功案例已經(jīng)很多了。比如國外的PHPBB,VBB,國內(nèi)的Discuz!論壇等等程序,都是用PHP + MySQL實(shí)現(xiàn)的。

和那些商務(wù)專用數(shù)據(jù)庫比起來,MySQL的功能和規(guī)??赡鼙缓枚嗳苏f的遜色一些,但對于我們個人來說,它的功能已經(jīng)算是完備。而且,通過Discuz!官方論壇上同時在線人數(shù)的數(shù)目,也可以證明MySQL的穩(wěn)定性。

本條目介紹一下CentOS下MySQL數(shù)據(jù)庫服務(wù)器的構(gòu)建方法。

安裝MySQL及相關(guān)組件[ ]

首先,安裝MySQL。

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

Setting up Install Process
Setting up repositories
dag 100% |=========================| 1.1 kB 00:00
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 106 kB 00:00
update : ################################################## 261/261
Added 5 new packages, deleted 0 old in 2.02 seconds
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for mysql-server to pack into transaction set.
mysql-server-4.1.20-1.RHE 100% |=========================| 29 kB 00:00
---> Package mysql-server.i386 0:4.1.20-1.RHEL4.1 set to be updated
--> Running transaction check
--> Processing Dependency: libmysqlclient.so.14(libmysqlclient_14) for package: mysql-server
--> Processing Dependency: perl-DBD-MySQL for package: mysql-server
--> Processing Dependency: perl-DBI for package: mysql-server
--> Processing Dependency: perl(DBI) for package: mysql-server
--> Processing Dependency: mysql = 4.1.20-1.RHEL4.1 for package: mysql-server
--> Processing Dependency: libmysqlclient.so.14 for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.14(libmysqlclient_14) for package: mysql-server
--> Processing Dependency: libmysqlclient_r.so.14 for package: mysql-server
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for perl-DBD-MySQL to pack into transaction set.
perl-DBD-MySQL-2.9004-3.1 100% |=========================| 5.4 kB 00:00
---> Package perl-DBD-MySQL.i386 0:2.9004-3.1 set to be updated
---> Downloading header for mysql to pack into transaction set.
mysql-4.1.20-1.RHEL4.1.i3 100% |=========================| 35 kB 00:00
---> Package mysql.i386 0:4.1.20-1.RHEL4.1 set to be updated
---> Downloading header for perl-DBI to pack into transaction set.
perl-DBI-1.40-8.i386.rpm 100% |=========================| 11 kB 00:00
---> Package perl-DBI.i386 0:1.40-8 set to be updated
--> Running transaction check
Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
mysql-server i386 4.1.20-1.RHEL4.1 update 9.8 M
Installing for dependencies:
mysql i386 4.1.20-1.RHEL4.1 update 2.9 M
perl-DBD-MySQL i386 2.9004-3.1 base 111 k
perl-DBI i386 1.40-8 base 466 k

Transaction Summary
=============================================================================
Install 4 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 13 M
Downloading Packages:
(1/4): perl-DBD-MySQL-2.9 100% |=========================| 111 kB 00:00
(2/4): mysql-server-4.1.2 100% |=========================| 9.8 MB 00:11
(3/4): mysql-4.1.20-1.RHE 100% |=========================| 2.9 MB 00:03
(4/4): perl-DBI-1.40-8.i3 100% |=========================| 466 kB 00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: perl-DBI ######################### [1/4]
Installing: mysql ######################### [2/4]
Installing: perl-DBD-MySQL ######################### [3/4]
Installing: mysql-server ######################### [4/4]

Installed: mysql-server.i386 0:4.1.20-1.RHEL4.1
Dependency Installed: mysql.i386 0:4.1.20-1.RHEL4.1 perl-DBD-MySQL.i386 0:2.9004-3.1 perl-DBI.i386 0:1.40-8
Complete!

然后,安裝PHP訪問MySQL數(shù)據(jù)庫的工具“php-mysql”。

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

Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Reducing Dag RPM Repository for Red Hat Enterprise Linux to included packages only
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for php-mysql to pack into transaction set.
php-mysql-4.3.9-3.15.i386 100% |=========================| 18 kB 00:00
---> Package php-mysql.i386 0:4.3.9-3.15 set to be updated
--> Running transaction check
Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
php-mysql i386 4.3.9-3.15 update 35 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 35 k
Downloading Packages:
(1/1): php-mysql-4.3.9-3. 100% |=========================| 35 kB 00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: php-mysql ######################### [1/1]

Installed: php-mysql.i386 0:4.3.9-3.15
Complete!

配置MySQL[ ]

然后,配置MySQL。

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

[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  ← 找到這一行,在這一行的下面添加新的規(guī)則,讓MySQL的默認(rèn)編碼為UTF-8
default-character-set = utf8  ← 添加這一行

然后在配置文件的文尾填加如下語句:

[mysql]
default-character-set = utf8

啟動MySQL服務(wù)[ ]

啟動MySQL,并讓MySQL在系統(tǒng)重新啟動后隨系統(tǒng)自動啟動。

[root@sample ~]# chkconfig mysqld on  ← 設(shè)置MySQL服務(wù)隨系統(tǒng)啟動自啟動

[root@sample ~]# chkconfig --list mysqld  ← 確認(rèn)MySQL自啟動
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 如果2--5為on的狀態(tài)就OK

[root@sample ~]# /etc/rc.d/init.d/mysqld start  ← 啟動MySQL服務(wù)

Initializing MySQL database:         [ OK ]
Starting MySQL:              [ OK ]

MySQL初始環(huán)境設(shè)定[ ]

[1]為MySQL的root用戶設(shè)置密碼

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

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

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('在這里填入root密碼');  ← 設(shè)置root密碼
Query OK, 0 rows affected (0.01 sec)

mysql> set password for root@'sample.centospub.com'=password('在這里填入root密碼');  ← 設(shè)置root密碼
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host,password from mysql.user;  ← 查看用戶信息
+------+--------------------------------+--------------------------+
| user | host          | password     |
+------+--------------------------------+--------------------------+
| root | localhost        | 19b68057189b027f |  ← root密碼被設(shè)置
| root | sample.centospub.com   | 19b68057189b027f |  ← root密碼被設(shè)置
|    | sample.centospub.com   |          |
|    | localhost        |          |
+------+--------------------------------+--------------------------+
4 rows in set (0.01 sec)

mysql> exit  ← 退出MySQL服務(wù)器
Bye

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

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

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

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

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

[root@sample ~]# mysql -u root -p  ← 通過密碼用root登錄
Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.  ← 確認(rèn)用密碼能夠成功登錄
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
Bye

[root@sample ~]# mysql -u root -h sample.centospub.com -p  ← 通過密碼用root登錄
Enter password:  ← 在這里輸入密碼

Welcome to the MySQL monitor. Commands end with ; or \g.  ← 確認(rèn)用密碼能夠成功登錄
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服務(wù)器
Bye

[2] 刪除匿名用戶

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

[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       |
| 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服務(wù)器
Bye

[3] 刪除測試用數(shù)據(jù)庫

在MySQL被安裝后,存在名為test的空數(shù)據(jù)庫,將它刪除。這里要注意的是,系統(tǒng)默認(rèn)的還有一個名為mysql的數(shù)據(jù)庫,它用于系統(tǒng)管理,所以請不要刪除。

[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;  ← 查看系統(tǒng)已存在的數(shù)據(jù)庫
+-------------+
| Database |
+-------------+
| mysql   |
| test   |
+------------+
2 rows in set (0.02 sec)

mysql> drop database test;  ← 刪除名為test的空數(shù)據(jù)庫
Query OK, 0 rows affected (0.07 sec)

mysql> show databases;  ← 查看系統(tǒng)已存在的數(shù)據(jù)庫
+-------------+
| Database |
+-------------+
| mysql   |  ← 確認(rèn)名為test的數(shù)據(jù)庫被刪除,已不存在
+-------------+
1 row in set (0.00 sec)

mysql> exit  ← 退出MySQL服務(wù)器
Bye

測試MySQL[ ]

下面對MySQL進(jìn)行測試。包括建立新用戶,以及用對關(guān)系性數(shù)據(jù)庫進(jìn)行數(shù)據(jù)庫操作的指令來試著建立數(shù)據(jù)庫及數(shù)據(jù)表。這里,新建用戶以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 '在這里定義密碼';  ← 建立對test數(shù)據(jù)庫有完全操作權(quán)限的名為centospub的用戶
Query OK, 0 rows affected (0.03 sec)

mysql> select user from mysql.user where user='centospub';  ← 確認(rèn)centospub用戶的存在與否
+---------+
| user  |
+---------+
| centospub |  ← 確認(rèn)centospub已經(jīng)被建立
+---------+
1 row in set (0.01 sec)

mysql> exit  ← 退出MySQL服務(wù)器
Bye

[root@sample ~]# mysql -u centospub -p  ← 用新建立的centospub用戶登錄MySQL服務(wù)器
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的數(shù)據(jù)庫
Query OK, 1 row affected (0.00 sec)

mysql> show databases;  ← 查看系統(tǒng)已存在的數(shù)據(jù)庫
+-------------+
| Database |
+-------------+
| test    |
+-------------+
1 row in set (0.00 sec)

mysql> use test  ← 連接到數(shù)據(jù)庫
Database changed

mysql> create table test(num int, name varchar(50));  ← 在數(shù)據(jù)庫中建立表
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;  ← 查看數(shù)據(jù)庫中已存在的表
+-------------------+
| 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;  ← 查看數(shù)據(jù)庫中的表的信息
+------+-------------------+
| 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;  ← 查看數(shù)據(jù)庫中的表的信息
+------+----------------------+
| num | name      |
+------+----------------------+
| 1   | Hello Everyone! |  ← 確認(rèn)被更新到新的值
+------+----------------------+
1 row in set (0.01 sec)

mysql> delete from test where num=1;  ← 刪除表內(nèi)的值
Query OK, 1 row affected (0.00 sec)

mysql> select * from test;  ← 確認(rèn)刪除結(jié)果
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)  ← 確認(rèn)表已被刪除

mysql> drop database test;  ← 刪除名為test的數(shù)據(jù)庫
Query OK, 0 rows affected (0.01 sec)

mysql> show databases;  ← 查看已存在的數(shù)據(jù)庫
Empty set (0.01 sec)  ← 確認(rèn)test數(shù)據(jù)庫已被刪除(這里非root用戶的關(guān)系,看不到名為mysql的數(shù)據(jù)庫)

mysql> exit  ← 退出MySQL服務(wù)器
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用戶對數(shù)據(jù)庫的操作權(quán)限
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,確認(rèn)已刪除與否
Empty set (0.01 sec)  ← 確認(rèn)centospub用戶已不存在

mysql> flush privileges;  ← 刷新,使以上操作生效
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye

最后,重新啟動一次HTTP服務(wù),讓php-mysql反映到HTTP服務(wù)中。

[root@sample ~]# /etc/rc.d/init.d/httpd restart  ← 重新啟動HTTP服務(wù)
Stopping httpd:             [ OK ]
Starting httpd:             [ OK ]

參考來源[ ]

http://www.centospub.com/make/mysql.html

CentOS使用手冊導(dǎo)航

CentOS安裝

CentOS安裝 | 系統(tǒng)安裝后的初始環(huán)境設(shè)置 | 服務(wù)器方式安裝CentOS 5

CentOS使用手冊

使用RPM管理包 | 使用YUM工具更新系統(tǒng) | 使用rsync服務(wù) | 使用rsync同步 | 使用tar備份 | 使用tar恢復(fù)文件 | Samba 服務(wù)器的構(gòu)建 | 用SWAT讓Samba服務(wù)器的管理溫和化 | SMTP服務(wù)器的構(gòu)建 | POP/IMAP服務(wù)器的構(gòu)建 | 病毒查殺系統(tǒng)的構(gòu)建 | 入侵監(jiān)測系統(tǒng)的構(gòu)建 | 用OpenSSH構(gòu)建SSH服務(wù)器 | 用SSH客戶端軟件登錄到服務(wù)器 | 讓服務(wù)器支持安全HTTP協(xié)議 | 開放一般用戶的網(wǎng)頁發(fā)布權(quán)限 | 虛擬主機(jī)的構(gòu)建 | Servlet/JSP服務(wù)器的構(gòu)建 | 基于日志的站點(diǎn)統(tǒng)計(jì)系統(tǒng)的構(gòu)建 | 構(gòu)建MySQL數(shù)據(jù)庫服務(wù)器 | 用phpMyAdmin讓MySQL數(shù)據(jù)庫管理溫和化 | 數(shù)據(jù)庫的自動備份與恢復(fù) | 用ProFTPD構(gòu)建FTP服務(wù)器 | 用FTP客戶端軟件連接到服務(wù)器