MySQL 5.6.38在RedHat 6.5上通過RPM包安裝

一、安裝環境

1、操作系統版本:Red Hat Enterprise Linux Server release 6.5 (Santiago)

2、Mysql版本:MySQL-5.6.38-1.el6.x86_64.rpm-bundle.tar


二、安裝說明

網上不少資料在使用rpm包安裝Mysql 5.6之前,都會先卸載系統自帶的mysql-libs,但有的資料是用yum remove mysql,但這樣會把依賴mysql-libs的8個包也一同卸載,其中就包括postfix、crontab等軟件包,造成了非預期目的的卸載,有的資料就使用rpm -e --nodeps mysql-libs來避免卸載其他依賴mysql-libs的軟件包,但是也並非完全正確的做法,Mysql官方提供的Mysql-shared-compat正是替代mysql-libs的rpm包,應先安裝此包,再單獨卸載mysql-libs,官方說明如下:

f3b003a7cf32a4cdf9cb2a89a1a2817f.png

解壓MySQL-5.6.38-1.el6.x86_64.rpm-bundle.tar後,可以看到包含了多個rpm包文件

07036aad7144c4bf1fc42f13a67b9daf.png

網上不少資料都選擇了安裝Mysql-server、Mysql-client和Mysql-devel三個包,但實際上Mysql-devel的作用是如果需要編譯其他mysql客戶端例如perl mysql模塊或者打算編譯C API應用程序,實際上大多數情況下標準安裝並不需要安裝Mysql-devel,只需要按照Mysql-server和Mysql-client就行,本文就是這樣安裝。官網的介紹如下:

7dbc5d5b73127fe3cc0d923926c4b9b1.png

d7e8cc8b5a2664defc421a5b9af8939f.png


三、安裝過程

1、首先安裝一下Mysql-shared-compat,再單獨卸載mysql-libs。

16039d52549b128ae129974674943802.png

2、安裝mysql-server,根據提示安裝完成後的隨機密碼在/root/.mysql_secret,並且可以運行安全配置嚮導/usr/bin/mysql_secure_installation,還有配置文件在/usr/my.cnf(按習慣一般拷貝到/etc/my.cnf)

[root@node01
mysqlrpm]# rpm -ivh MySQL-server-5.6.38-1.el6.x86_64.rpm
warning:
MySQL-server-5.6.38-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID
5072e1f5: NOKEY
Preparing...               
########################################### [100%]
   1:MySQL-server          
########################################### [100%]
warning: user mysql
does not exist - using root
warning: group mysql
does not exist - using root
warning: user mysql
does not exist - using root
warning: group mysql
does not exist - using root
2017-10-28 20:57:24
0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use
--explicit_defaults_for_timestamp server option (see documentation for more
details).
2017-10-28 20:57:24
0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
2017-10-28 20:57:24
0 [Note] /usr/sbin/mysqld (mysqld 5.6.38) starting as process 8869 ...
2017-10-28 20:57:24
8869 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-10-28 20:57:24
8869 [Note] InnoDB: The InnoDB memory heap is disabled
2017-10-28 20:57:24
8869 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-10-28 20:57:24
8869 [Note] InnoDB: Memory barrier is not used
2017-10-28 20:57:24
8869 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-10-28 20:57:24
8869 [Note] InnoDB: Using Linux native AIO
2017-10-28 20:57:24
8869 [Note] InnoDB: Using CPU crc32 instructions
2017-10-28 20:57:24
8869 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-10-28 20:57:24
8869 [Note] InnoDB: Completed initialization of buffer pool
2017-10-28 20:57:24
8869 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a
new database to be created!
2017-10-28 20:57:24
8869 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2017-10-28 20:57:24
8869 [Note] InnoDB: Database physically writes the file full: wait...
2017-10-28 20:57:25
8869 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2017-10-28 20:57:26
8869 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2017-10-28 20:57:27
8869 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0
2017-10-28 20:57:27
8869 [Warning] InnoDB: New log files created, LSN=45781
2017-10-28 20:57:27
8869 [Note] InnoDB: Doublewrite buffer not found: creating new
2017-10-28 20:57:27
8869 [Note] InnoDB: Doublewrite buffer created
2017-10-28 20:57:27
8869 [Note] InnoDB: 128 rollback segment(s) are active.
2017-10-28 20:57:27
8869 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-10-28 20:57:27
8869 [Note] InnoDB: Foreign key constraint system tables created
2017-10-28 20:57:27
8869 [Note] InnoDB: Creating tablespace and datafile system tables.
2017-10-28 20:57:27
8869 [Note] InnoDB: Tablespace and datafile system tables created.
2017-10-28 20:57:27
8869 [Note] InnoDB: Waiting for purge to start
2017-10-28 20:57:27
8869 [Note] InnoDB: 5.6.38 started; log sequence number 0
A random root password has been set. You will find it in '/root/.mysql_secret'.
2017-10-28 20:57:28
8869 [Note] Binlog end
2017-10-28 20:57:28
8869 [Note] InnoDB: FTS optimize thread exiting.
2017-10-28 20:57:28
8869 [Note] InnoDB: Starting shutdown...
2017-10-28 20:57:29
8869 [Note] InnoDB: Shutdown completed; log sequence number 1625977
2017-10-28 20:57:29
0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use
--explicit_defaults_for_timestamp server option (see documentation for more
details).
2017-10-28 20:57:29
0 [Note] Ignoring --secure-file-priv value as server is running with
--bootstrap.
2017-10-28 20:57:29
0 [Note] /usr/sbin/mysqld (mysqld 5.6.38) starting as process 8891 ...
2017-10-28 20:57:29
8891 [Note] InnoDB: Using atomics to ref count buffer pool pages
2017-10-28 20:57:29
8891 [Note] InnoDB: The InnoDB memory heap is disabled
2017-10-28 20:57:29
8891 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2017-10-28 20:57:29
8891 [Note] InnoDB: Memory barrier is not used
2017-10-28 20:57:29
8891 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-10-28 20:57:29
8891 [Note] InnoDB: Using Linux native AIO
2017-10-28 20:57:29
8891 [Note] InnoDB: Using CPU crc32 instructions
2017-10-28 20:57:29
8891 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2017-10-28 20:57:29
8891 [Note] InnoDB: Completed initialization of buffer pool
2017-10-28 20:57:29
8891 [Note] InnoDB: Highest supported file format is Barracuda.
2017-10-28 20:57:29
8891 [Note] InnoDB: 128 rollback segment(s) are active.
2017-10-28 20:57:29
8891 [Note] InnoDB: Waiting for purge to start
2017-10-28 20:57:29
8891 [Note] InnoDB: 5.6.38 started; log sequence number 1625977
2017-10-28 20:57:29
8891 [Note] Binlog end
2017-10-28 20:57:29
8891 [Note] InnoDB: FTS optimize thread exiting.
2017-10-28 20:57:29
8891 [Note] InnoDB: Starting shutdown...
2017-10-28 20:57:31
8891 [Note] InnoDB: Shutdown completed; log sequence number 1625987

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in '/root/.mysql_secret'.
 
You must change that password on your first connect,
no other statement but 'SET PASSWORD' will be accepted.
See the manual for the semantics of the 'password expired' flag.
 
Also, the account for the anonymous user has been removed.
 
In addition, you can run:   /usr/bin/mysql_secure_installation
 
which will also give you the option of removing the test database.This is strongly
recommended for production servers.
 
See the manual for more instructions.
 
Please report any problems at http://bugs.mysql.com/
 
The latest information about MySQL is available on the web at http://www.mysql.com
 
Support MySQL by buying support/licenses at http://shop.mysql.com
 
New default config file was created as /usr/my.cnf and will be used by
default by the server when you start it.
You may edit this file to change server settings

3、安裝Mysql-client

16e559dbea61ab087649fed37703d4cb.png

4、複製my.conf並啓動服務

 [root@node01 mysqlrpm]# cp /usr/my.cnf /etc/my.cnf

689adb252f0b4a87256a47d7ea391e91.png

5、RPM包安裝後的目錄結構如下:

2c373c325cf40ea4d0448f0dcf87b58a.png



四、初始化配置Mysql並登錄數據庫

1、網上很多資料在RPM安裝完Mysql 5.6後還執行了/usr/bin/mysql_install_db進行初始化安裝但安全配置嚮導卻沒運行,實際上在Mysql 5.6.8開始,用RPM包全新安裝時會調用/usr/bin/mysql_install_db並帶上隨機密碼參數,因此並不需要再執行mysql_install_db,反而運行安全配置嚮導很有必要。官網說明如下:

58cee0d88844ef48c3735509206d2a96.png

2、運行安全配置嚮導,由於需要輸入root密碼,因此先查看一下隨機生成的密碼文件。

[root@node01 ~]# cat /root/.mysql_secret
# The random password set for the root user at Sat Oct 28 20:57:28 2017 (local time):
LyE_R5rVp7p1vLMe

  安全配置嚮導主要執行以下操作:

  a)是否爲root用戶設置密碼
  b)是否刪除匿名賬號
  c)是否取消root用戶遠程登錄
  d)是否刪除test庫和對test庫的訪問權限
  e)是否刷新授權表使修改生效

[root@node01 ~]# cat /root/.mysql_secret
# The random password set for the root user at Sat Oct 28 20:57:28 2017 (local time):
LyE_R5rVp7p1vLMe

[root@node01 ~]# /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, andyou 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.
 
You already have a root password set, so you can safely answer 'n'.
 
Change the 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] n
 ... skipping.
 
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] n
 ... skipping.
 
Reloading the privilege tables will ensure that all changes made so far will take effect
immediately.
 
Reload privilege tables now? [Y/n] y
 ... Success!
 
All done!  If you've completed all of the above steps,your MySQL installation should
now be secure.
 
Thanks for using MySQL!
 
Cleaning up...


3、登錄數據庫,確認安裝成功完成

18277f3d2e04c42af9a649978a6054f2.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章