安装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
(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