RedHat6.4 上采用RPM包方式安装mysql5.6 整理

时间:2022-01-14 17:08:14

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