Centos6 and 7 mysql5.6安装

40 篇文章 0 订阅
7 篇文章 0 订阅

一、官网下载二进制包

https://dev.mysql.com/downloads/mysql/

选择Linux – Generic版本下的X86,64bit TAR Archive版本下载

二、删除老版本mysql
1.查找以前是否装有mysql,命令:rpm -qa|grep -i mysql
例可以看到mysql的两个包:
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1

2、删除mysql,删除命令:rpm -e --nodeps 包名

shell> rpm -ev mysql-4.1.12-3.RHEL4.1或
shell> yum -y remove mysql-4.1.12-3.RHEL4.1

3、删除老版本mysql的开发头文件和库

命令:

shell> rm -fr /usr/lib/mysql
shell> rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

shell> rm -f /etc/my.cnf
shell> rm -fr /var/lib/mysql

三、安装新版本mysql

1. 解压至安装目录

shell> tar zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

假设解压目录为/opt/local/mysql
2.安装流程可参照官网https://dev.mysql.com/doc/refman/5.6/en/binary-installation.html,下面只是带一些解释性操作

#mysql需要依赖libaio,所以安装前最好检查下依赖是否已经安装

shell> yum search libaio  # search for info
shell> yum –y install libaio # install library
#建立用户和用户组
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql

可以man useradd看参数说明。-r创建的是系统帐号,一般用来做系统服务的,MySQL建议做为系统服务来运行,所以建议创建系统帐号,同时禁止直接以mysql用户身份登录系统,所以使用-s /bin/false参数

shell> cd mysql
#新建mysql-files,sock,pid,log目录,其中log目录下要新建mysqld.log文件
shell> mkdir mysql-files sock pid log
shell> vim log/mysqld.log
#更改目录下所有文件的所有权
shell> chown -R mysql:mysql .
#更改前面创建文件夹的执行权限
shell> chmod -R 775 mysql-files data sock pid log
#初始化
shell>scripts/mysql_install_db --user=mysql --user=mysql --basedir=/opt/local/mysql --datadir=/opt/local/mysql/data/
#复制当前目录下的my.cnf到/etc下,并编辑配置
shell> cp my.cnf /etc/my.cnf
shell> vim /etc/my.cnf
# 建立mysql全局软链接
shell> ln -s /opt/local/mysql /usr/local/mysql
#启动mysql            
shell> bin/mysqld_safe --user=mysql &
#将mysql做为开机启动服务
shell> cp support-files/mysql.server /etc/init.d/mysql.server

#修改/etc/profile,添加mysql目录,否则mysqladmin等命令会无法访问
MYSQL=/opt/local/mysql
PATH=$MYSQL/bin:$PATH
export PATH
#修改root密码为可自己的密码

mysqladmin -u root password 自己的密码

注: 1.mysql5.6的配置文件与5.0版本的稍有些不同,其中最常用到的table_cache已更名为table_open_cache,如此项不改将会无法启动
2.如果更改了mysql的log,pid,sock目录,注意给相应目录加写权限,否则也会启动失败
3.关于binlog设置出错的问题,这是由于版本的问题,之前的MySQL一直都只有基于statement的复制模式,直到5.1.5版本的MySQL才开始支持row level的复制。从5.0开始,MySQL的复制已经解决了大量老版本中出现的无法正确复制的问题。但是由于存储过程的出现,给MySQL Replication复制又带来了更大的新挑战。另外,看到官方文档说,从5.1.8版本开始,MySQL提供了除Statement Level和Row Level之外的第三种复制模式:Mixed,实际上就前两种模式的结合。在Mixed模式下,MySQL会根据执行的每一条具体的sql语句来区分对待记录的日志形式,也就是在Statement和Row之间选择一种。新版本中的Statement Level还是和以前一样,仅仅记录执行的语句。而新版本的MySQL中对row level模式也被做了优化,并不是所有的修改都会以row level来记录,像遇到表结构变更的时候就会以statement模式来记录,如果sql语句确实就是update或者delete等修改数据的语句,那么还是会记录所有行的变更。

 

附:my.cnf配置一份

[mysqld]
datadir=/opt/local/mysql/data
socket=/opt/local/mysql/sock/mysql.sock
user=mysql
symbolic-links=0
port            = 3306
skip-external-locking
key_buffer = 384M
max_allowed_packet = 50M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 64
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
max_connections=1000
skip-name-resolve
log-bin=mysql-bin
binlog_format = "MIXED"
max_binlog_size = 500M
expire_logs_days = 5
server-id = 1

innodb_buffer_pool_size = 512M
innodb_log_buffer_size = 80M
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_large_prefix = 1
character-set-server = utf8
collation-server = utf8_general_ci
tmpdir = /tmp
explicit_defaults_for_timestamp = true
secure_auth=false

[mysqldump]
quick
max_allowed_packet = 100M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

long_query_time = 2
log_slow_queries

[client]
#password       = your_password
port            = 3306
socket          = /opt/local/mysql/sock/mysql.sock

[mysqld_safe]
log-error=/opt/local/mysql/log/mysqld.log
pid-file=/opt/local/mysql/pid/mysqld.pid

sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值