安装mysql5.6的方式有:rpm包安装、编译安装、二进制文件安装等。

现在将rpm包安装的步骤整理下。

1. 删除系统自带的mysql5.1

rpm -qa | grep mysql   #查看已经安装的mysql

rpm -e mysql            #普通删除模式

rpm -e --nodeps mysql#强力删除模式

#使用yum卸载rpm包防止mysql安装冲突 

yum -y remove mysql-libs-5.1.66*

2.​​RedHat设置本地yum源​

redhat系统如果想使用yum功能需要正版授权,

这里采用Linux的安装文件作为本地yum源即可。


在/mnt下面新建目录,挂载光盘

mkdir /mnt/cdrom

挂载光盘

mount -r /dev/cdrom/ -o loop /mnt/cdrom


/etc/yum.repos.d/rhel-source.repo备份后删除

cd /etc/yum.repos.d/
mv rhel-source.repo rhel-source.repo.bak

在/etc/yum.repos.d/下面新建一个repo文件

vi local.repo

在编辑器中输入以下几行即可:

[localrepo]
name = myLocalYumRepo
baseurl = file:///mnt/cdrom
gpgcheck = 0
enable = 1


下次要使用yum时记得加载光盘文件,

如果嫌麻烦,直接拷贝整个linux安装文件

到指定的目录下即可,将baseurl指向该目录。

如:

mkdir /mnt/cdrom

cp -av /mnt/cdrom/* /yum/

3. 下载安装需要的RPM文件

下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads

找到rpm包合集:

Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 64-bit), RPM Bundle(64位系统)

Red Hat Enterprise Linux 6 / Oracle Linux 6 (x86, 32-bit), RPM Bundle(32位系统)

这个压缩包中包含所有mysql安装的rpm包,不过一般只安装三个包即可:

MySQL-server-5.6.31-1.el6.x86_64.rpm

MySQL-client-5.6.31-1.el6.x86_64.rpm

MySQL-devel-5.6.31-1.el6.x86_64.rpm


4. 安装MYSQL 并且初始化数据库

采用 yum install 先后安装上面的三个rpm包:

yum install MySQL-server-5.6.31-1.el6.x86_64.rpm

yum install MySQL-client-5.6.31-1.el6.x86_64.rpm

yum install MySQL-devel-5.6.31-1.el6.x86_64.rpm

安装后mysql主要的默认存放文件目录:

/usr/bin                 #这里存放脚本和客户端程序

/var/lib/mysql        #mysql的数据存储目录

/usr/share/mysql  #mysql存放的初始化相关脚本


初始化mysql数据库:

如果使用上面的默认路径,则只需运行:

/usr/bin/mysql_install_db --user=mysql即可完成初始化。


如果不想/var/lib/mysql目录作为mysql的数据存储目录,

则新建mysql的数据文件存储目录,例如:

mkdir -p /opt/mysql/data

mkdir -p /opt/mysql/tmp

chown -R mysql:mysql  /opt/mysql/data

chown -R mysql:mysql  /opt/mysql/tmp


修改下面两个文件中datadir 变量值

vi /etc/init.d/mysql

vi /usr/share/mysql/mysql.server

文件中开头信息中:

...省略...

basedir=

datadir=

.. 省略...

datadir=/opt/mysql/data 即可。


在/etc 目录下创建my.cnf文件

mysql5.6中不像5.5那样提供my.cnf的配置模板

网上信息配置比较多,可以拷贝一份。

my.cnf中的客户端、服务端配置信息中按照上面的指定数据

文件目录规则需要包含的内容如下:

##################my.cnf部分配置信息###################

# The following options will be passed to all MySQL clients

[client]

#客户端默认连接字集集,若编译安装时已指定则不用填写

#character-set-server = utf8  

#客户端连接通信端口

port = 3306    

#客户端通信的用户密码端口等信息保存文件

socket = /opt/mysql/tmp/mysql.sock   

default-character-set=utf8

# The MySQL server

[mysqld]

#mysql服务端监听端口

port  = 3306     

#mysql数据库存放目录

datadir = /opt/mysql/data 
socket = /opt/mysql/tmp/mysql.sock    
  

#服务端pid进程文件,若丢失则重启Mysql重新生成,若重启失败,

#则可能由于mysqld进程未杀死,用pkill mysql后则能重启成功Mysql

pid-file =/opt/mysql/data/myDBserver.pid 

....其他配置信息省略...

###################################################


运行下面的命令进行初始化操作:

/usr/bin/mysql_install_db --user=mysql --datadir=/opt/mysql/data

不出其他问题则可以看到打印信息中出现两次 ok 即表示初始化完成。

.....省略

ok

.....省略

ok

...省略


打印出的信息中包括建议你设置root用户的密码,

运行 /usr/bin/mysql_secure_installation 进行一些安全设置等。


5.启动mysql

运行 /etc/init.d/mysql start 即可启动mysql,

如果报错例如:

Starting MySQL. ERROR! The server quit without updating PID file (/opt/mysql/data/XXX.pid).

建议关闭SELinux

(1)  vi /etc/selinux/config


(2)  #SELINUX=enforcing     #注释掉


(3)  #SELINUXTYPE=targeted  #注释掉


(4)  SELINUX=disabled  #增加


(5)  :wq  #保存退出


(6)  reboot   #重启系统



下面my.cnf完成的配置信息,适合自己电脑上配置玩玩。

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 

# The following options will be passed to all MySQL clients

[client]

#客户端默认连接字集集,若编译安装时已指定则不用填写

#character-set-server = utf8  

#客户端连接通信端口

port = 3306    

#客户端通信的用户密码端口等信息保存文件

socket = /opt/mysql/tmp/mysql.sock   

default-character-set=utf8


# The MySQL server

[mysqld]

#mysql服务端监听端口

port  = 3306     

#mysql数据库存放目录

datadir = /opt/mysql/data 

socket = /opt/mysql/tmp/mysql.sock       

#服务端pid进程文件,若丢失则重启Mysql重新生成,若重启失败,

#则可能由于mysqld进程未杀死,用pkill mysql后则能重启成功Mysql

pid-file =/opt/mysql/data/myDBserver.pid 

###防止外部锁定表

skip-external-locking

#禁止Mysqlr的DNS解析,只能通过IP连接数据库

skip-name-resolve    

#仅针对Myisam表引擎缓存优化

#key_buffer_size = 384M   

#客户端最大查询的sql语句大小

max_allowed_packet = 32M  

#服务器最大缓存表数量

table_open_cache = 1024 

#每个连接的最大排序内存

sort_buffer_size = 64M   

#每个连接使用join查询语句的最大内存

join_buffer_size = 16M 

# mysqldump时候会加快速度

net_buffer_length = 1M

read_buffer_size = 2M

read_rnd_buffer_size = 16M

#myisam_sort_buffer_size = 128M

thread_cache_size = 20

#query_cache_size = 256M

#query_cache_limit = 2M

#CPU*2

#thread_concurrency = 4

#SQL语句最大执行时间

#wait_timeout = 120  

#允许数据库最大连接数

max_connections = 200   

#允许客户端连接数据库出错次数,能防止暴力破解数据库密码

max_connect_errors = 20  

#服务器和数据库默认字符集

character-set-server = utf8   

#客户端校正字符集

collation-server = utf8_general_ci  

init_connect = 'SET NAMES utf8'

#忽略SQL语句大小写

lower_case_table_names= 1

##慢查询日志文件

#log_slow_queries = slowquery.log

###慢查询时间

#long_query_time = 3

###mysql重启自动修复MYisam表

#myisam_recover  

###数据同步时不需要同步的数据库名称

#replicate-ignore-db = mysql   

#replicate-ignore-db = information_schema

##服务器多个IP时写上比较重要

#bind-address = IP地址

# Don't listen on a TCP/IP port at all. This can be a security enhancement,

# if all processes that need to connect to mysqld run on the same host.

# All interaction with mysqld must be made via Unix sockets or named pipes.

# Note that using this option without enabling named pipes on Windows

# (via the "enable-named-pipe" option) will render mysqld useless!

#skip-networking

#每一个innodb的表都有一个独立的表空间

innodb_file_per_table = 1

# Replication Master Server (default)

# binary logging is required for replication

log-bin=mysql-bin

# binary logging format - mixed recommended

binlog_format=mixed

# bin_log 文件保存的天数

expire_logs_days = 5

# 设置mysql事务级别

transaction-isolation=READ-COMMITTED

# required unique id between 1 and 2^32 - 1

# defaults to 1 if master-host is not set

# but will not function as a master if omitted

server-id = 1

#Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = /usr/local/mysql/var

#innodb_data_file_path = ibdata1:10M:autoextend

#innodb_log_group_home_dir = /usr/local/mysql/var

#You can set .._buffer_pool_size up to 50 - 80 %

#of RAM but beware of setting memory usage too high

innodb_buffer_pool_size = 256M

#innodb_additional_mem_pool_size = 2M

#Set .._log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 5M

#innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50

[mysqldump]

quick

max_allowed_packet = 32M

[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

[mysqlhotcopy]

interactive-timeout