目前CentOS/Red Hat (RHEL) 6.2官方自帶的mysql版本爲5.1,mysql5.5已經出來了。mysql
相比mysql5.1,mysql5.5不只在多個方面進行了改進:web
- 性能上有了很大提高
- 默認存儲引擎更改成InnoDB
- CPU多核處理性能提高
- 複製功能增強,新增半同步複製
- 加強表分區功能
- 等等
本文將指導你如何在CentOS/Red Hat (RHEL) 6.2及Fedora 17/16下安裝最新版本的社區版本mysql。
若是您要升級mysql,請先備份好你的數據及配置文件再行升級。
讓咱們開始動手吧。
step1. 切換到root用戶
step2. 安裝remi軟件源
Fedora平臺
- ## Remi Dependency on Fedora 17, 16, 15
- rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
- rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
-
- ## Fedora 17 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-17.rpm
-
- ## Fedora 16 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-16.rpm
-
- ## Fedora 15 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-15.rpm
-
- ## Fedora 14 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-14.rpm
-
- ## Fedora 13 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm
-
- ## Fedora 12 ##
- rpm -Uvh http://rpms.famillecollet.com/remi-release-12.rpm
CentOS及Red Hat (RHEL)平臺
- ## Remi Dependency on CentOS 6 and Red Hat (RHEL) 6 ##
- rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-7.noarch.rpm
-
- ## CentOS 6 and Red Hat (RHEL) 6 ##
- rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
-
- ## Remi Dependency on CentOS 5 and Red Hat (RHEL) 5 ##
- rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
-
- ## CentOS 5 and Red Hat (RHEL) 5 ##
- rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
step3. 查看MySQL版本號
Fedora 17, 16, 15, 14, 13, 12
- yum --enablerepo=remi list mysql mysql-server
CentOS 6.2/6.1/6/5.8 and Red Hat (RHEL) 6.2/6.1/6/5.8
- yum --enablerepo=remi,remi-test list mysql mysql-server
輸出:
- Loaded plugins: changelog, fastestmirror, presto, refresh-packagekit
- ...
- remi | 3.0 kB 00:00
- remi/primary_db | 106 kB 00:00
- Available Packages
- mysql.i686 5.5.25-1.fc14.remi @remi
- mysql-server.i686 5.5.25-1.fc14.remi
step4. 安裝或升級到MySQL5.5.25
Fedora 17, 16, 15, 14, 13, 12
- yum --enablerepo=remi install mysql mysql-server
CentOS 6.2/6.1/6/5.8 and Red Hat (RHEL) 6.2/6.1/6/5.8
- yum --enablerepo=remi,remi-test install mysql mysql-server
step5. 開啓mysql服務並配置自啓動
Fedora 17/16
- systemctl start mysqld.service
- systemctl enable mysqld.service
Fedora 15/14/13/12/11, CentOS 6.2/6.1/6/5.8 and Red Hat (RHEL) 6.2/6.1/6/5.8
- /etc/init.d/mysqld start
- ## OR ##
- service mysqld start
- chkconfig --levels 235 mysqld on
step6. MySQL 安全設置
- 設置(修改)root密碼
- 刪除匿名用戶
- 禁用root遠程登陸
- 刪除測試數據庫test
- 重載權限表
要啓用MySQL 安全設置請輸入如下命令
- /usr/bin/mysql_secure_installation
輸出
- NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
- SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
-
-
- In order to log into MySQL to secure it, we\'ll need the current
- password for the root user. If you\'ve just installed MySQL, and
- you haven\'t set the root password yet, the password will be blank,
- so you should just press enter here.
-
- Enter current password for root (enter for none):
- OK, successfully used password, moving on...
-
- Setting the root password ensures that nobody can log into the MySQL
- root user without the proper authorisation.
-
- Set root password? [Y/n] Y
- New password:
- Re-enter new password:
- Password updated successfully!
- Reloading privilege tables..
- ... Success!
-
-
- By default, a MySQL installation has an anonymous user, allowing anyone
- to log into MySQL without having to have a user account created for
- them. This is intended only for testing, and to make the installation
- go a bit smoother. You should remove them before moving into a
- production environment.
-
- Remove anonymous users? [Y/n] Y
- ... Success!
-
- Normally, root should only be allowed to connect from 'localhost'. This
- ensures that someone cannot guess at the root password from the network.
-
- Disallow root login remotely? [Y/n] Y
- ... Success!
-
- By default, MySQL comes with a database named 'test' that anyone can
- access. This is also intended only for testing, and should be removed
- before moving into a production environment.
-
- Remove test database and access to it? [Y/n] Y
- - Dropping test database...
- ... Success!
- - Removing privileges on test database...
- ... Success!
-
- Reloading the privilege tables will ensure that all changes made so far
- will take effect immediately.
-
- Reload privilege tables now? [Y/n] Y
- ... Success!
-
- Cleaning up...
-
-
-
- All done! If you\'ve completed all of the above steps, your MySQL
- installation should now be secure.
-
- Thanks for using MySQL!
【注】:若是您不想啓動MySQL 安全設置命令,但至少也得修改一下root用戶密碼
- mysqladmin -u root password [your_password_here]
- ## 示例##
- mysqladmin -u root password myownsecrectpass
step7. 使用密碼鏈接本地數據庫
- mysql -u root -p
- ## OR ##
- mysql -h localhost -u root -p
step8. 爲指定數據庫,指定用戶配置指定客戶端(IP)遠程訪問
本示例的配置參數以下
- DB_NAME = webdb
- USER_NAME = webdb_user
- REMOTE_IP = 10.0.15.25
- PASSWORD = password123
- PERMISSIONS = ALL
1. 建立數據庫 webdb
- mysql> CREATE DATABASE webdb;
2. 建立用戶webdb_user
- mysql> CREATE USER 'webdb_user'@'10.0.15.25' IDENTIFIED BY 'password123';
3. 受權
- mysql> GRANT ALL ON webdb.* TO webdb_user@'10.0.15.25';
4. 重載權限表
step9. 配置防火牆開啓3306端口
1. 修改/etc/sysconfig/iptables 文件:
- vi /etc/sysconfig/iptables
2. 在COMMIT以前加入如下內容:
- -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
3. 重啓Iptables:
- service iptables restart
- ## OR ##
- /etc/init.d/iptables restart
4. 在客戶機上測試遠程訪問數據庫:
- mysql -h dbserver_name_or_ip_address -u webdb_user -p webdb