下载安装包:mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz
1、卸载老版本MySQL,查找并删除mysql有关的文件
find / -name mysql
rm -rf /usr/local/mysql/ /usr/lib64/mysql /usr/share/mysql /var/lock/subsys/mysql /var/lib/mysql
find / -name mysql|xargs rm -rf
2、在安装包存放目录下执行命令解压文件
tar -zxvf mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz
cp mysql-5.6.30-linux-glibc2.5-x86_64 /usr/local/mysql -r
3、添加mysql用户组和mysql用户
先检查是否有mysql用户组和mysql用户
groups mysql
若无,则添加;
groupadd mysql
useradd -r -g mysql mysql
若有,则跳过;
cd /usr/local/mysql/
chown -R mysql:mysql ./
cd /mnt/mysql/
chown -R mysql:mysql ./
4、执行安装
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql --datadir=/mnt/mysql
可能出现的问题
二进制安装mysql初始化出现:Installing MySQL system tables…/usr/local/mysql/bin/mysqld: error while loading shared
原因:缺少libaio库文件
解决方法:yum install libaio* -y
FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
解决方法 :安装autoconf库
命令:yum -y install autoconf
如果出现pid无法访问 可能是数据盘没有访问权限
chown mysql:mysql -R /mnt/mysql/
也有可能二次安装残留ps -ef|grep mysqld 杀死进程
5、安装完之后修改当前目录拥有者为root用户,修改data目录拥有者为mysql
chown -R root:root ./
chown -R mysql:mysql /mnt/mysql
my.cnf配置
# *** upgrade to a newer version of MySQL.
[client]
#default-character-set=utf8
socket=/mnt/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/mnt/mysql/mysql.sock
[mysqld]
event_scheduler=1
skip-host-cache
skip-name-resolve
default-storage-engine=INNODB
socket=/mnt/mysql/mysql.sock
datadir=/mnt/mysql
max_connections=1000
back_log=500
innodb_buffer_pool_size=256M
innodb_flush_log_at_trx_commit=1
sync_binlog=1
innodb_log_buffer_size=20M
innodb_additional_mem_pool_size=20M
thread_cache_size=16
interactive_timeout=300
wait_timeout=300
lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
server_id=1
port=3306
log-bin=master-bin.log
6、启动mysql
cd /usr/local/mysql
./support-files/mysql.server start
7、将MySQL加入Service系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart
service mysqld status
[root@AY13121413404985357fZ ~]# mysql -u root -p
-bash: mysql: command not found
[root@AY13121413404985357fZ ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@AY13121413404985357fZ ~]# mysql -u root -p
首次回车进入,修改root密码
use mysql;
update user set password=passworD(“XXX”) where user=‘root’;
flush privileges;
CREATE USER '账号'@'%' IDENTIFIED BY '密码';
grant all privileges on *.* to 账号@'%';
**
以下为异常情况,正常情况到此结束
**
当出现Access denied for user ‘’@‘localhost’ to database 'mysql‘
1、先关闭mysql,service mysqld stop
2、修改配置文件my.cnf,在mysqld下加一行
skip-grant-tables
3、启动mysql,service mysqld start
4、mysql -u root -p 回车进入
5、use mysql;
UPDATE user SET Password=PASSWORD(‘newpassword’) where USER=‘root’;
FLUSH PRIVILEGES;
6、关闭mysql
7、去掉my.cnf的skip-grant-tables
8、启动mysql
9、使用新密码进入