CentOS6.7安装MySQL8.0.11
注:我经历了一天的摸索总结了这次centos6版本安装mysql8版本遇到的各种问题(centos 7版本类似)
第一步:下载mysql安装包
下载之前一定要确定自己的centos的版本,一定要查清楚,一般centos开机的时候会显示自己的centos版本,还可以使用uname -a
uname -a
我的是centos6.7,32位
首先说一下i686和i386是32位的操作系统一会下载安装包的时候看清楚。
接下来我们要下载mysql安装包 linux 6版本32位的,由于官网下载特别慢,我这里给大家推荐几个国内的镜像网站
souhu镜像:http://mirrors.sohu.com/mysql/MySQL-8.0/
中科大镜像:http://mirrors.ustc.edu.cn/mysql-ftp/Downloads
中科大的下载快,但是失败率特别高,souhu的下载200多K,但是成功率很高,推荐使用souhu
如果你的linux操作系统是64 位的下载以下版本:
第二步:把安装包上传到linux上
有很多种方式,
第一种:
我用的是lrzsz上传和下载工具,使用这种工具的前提是你必须使用SecureCRT操作linux系统
我们可以使用yum安装方式安装
yum install lrzsz
注意:必须有网络
然后在SecureCRT执行一下步骤
把下载的mysql安装包放在update目录下
然后在linux上的 /usr/local/ 下创建mysql目录,然后进入mysql目录:
cd /usr/local/
mkdir mysql
cd mysql
然后输入rz命令
rz
上传完成后,进行解压,在mysql目录中执行以下命令
tar -xvf mysql-8.0.11-1.el6.i686.rpm-bundle.tar
结果如下:
第三步:开始安装
安装之前查看你的linux上有没有mysql或者mariadb
使用一下命令查看:
rpm -qa | grep mysql
或者
rpm -qa | grep mariadb
如果查出内容了,就把这些全卸载了:
rpm -e --nodeps 输入你查到的内容
卸载干净后,查看/var/lib/ 下有没有mysql文件夹,有就删除
rm -rf /var/lib/mysql
开始安装:
安装 mysql-community-common-8.0.11-1.el6.i686.rpm
rpm -ivh mysql-community-common-8.0.11-1.el6.i686.rpm --nodeps --force
安装 mysql-community-libs-8.0.11-1.el6.i686.rpm
rpm -ivh mysql-community-libs-8.0.11-1.el6.i686.rpm --nodeps --force
安装 mysql-community-client-8.0.11-1.el6.i686.rpm
rpm -ivh mysql-community-client-8.0.11-1.el6.i686.rpm --nodeps --force
安装 mysql-community-server-8.0.11-1.el6.i686.rpm
rpm -ivh mysql-community-server-8.0.11-1.el6.i686.rpm --nodeps --force
安装完成执行 rpm -qa | grep mysql 查看,会有你安装的四个
注意:到这可能会出现一个问题,就是执行rpm -qa | grep mysql 什么也没出现,这是因为你的mysql安装包和linux版本不匹配,导致mysql没有安装上,请仔细检查你下载的安装包,一定不要下载错了。
第四步:初始化MySQL
1、执行 mysqld --initialize
mysqld --initialize
这个命令执行后会在/var/lib/下生成一个mysql文件夹,这个文件夹就是mysql的data,同时也会生成一个用户名为 root 和一个初始化密码,密码在 /var/log/mysqld.log文件中,可以使用 cat /var/log/mysqld.log | grep password 命令进行查找
cat /var/log/mysqld.log | grep password
一定要记住这个密码
注意:到这里有的人可能会出现一个问题,就是生成初始化密码失败,这是因为你初始化之前没有删除/var/lib/mysql这个文件夹
初始化mysql后执行 chown mysql:mysql /var/lib/mysql -R;给data分配权限
chown mysql:mysql /var/lib/mysql -R
启动mysql服务
这里需要注意,如果你的linux是linux 6点几,就使用service mysqld start
service mysqld start
如果你的linux是linux 7点几可以使用systemctl start mysqld.service;
systemctl start mysqld.service
登录MySQL:
mysql -u root -p
输入你刚刚记下的密码
如果你登不上,而且打印信息有mysql.sock 那你就配置/etc/my.cnf文件,如果你发现没有my.cnf,使用touch my.cnf创建文件
touch /etc/my.cnf
然后使用:
vim /etc/my.cnf
文件中写入:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
port = 3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysql]
no-auto-rehash
default-character-set=utf8
添加完重新启动mysql服务
service mysqld restart
修改密码: ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’ 这里修改密码为root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'
第五步:配置远程访问
把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户,并且密码是root
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
我试了很多在防火墙配置文件中开放3306端口但是不行,所以我就把防火墙关了
service iptables stop
第六步:乱码问题
配置/etc/my.cnf
使用命令:vim /etc/my.cnf
vim /etc/my.cnf
在文件开始处添加
[clent]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set=utf8
在[mysqld]处添加
port = 3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
在文件结尾处添加:
[mysql]
no-auto-rehash
default-character-set=utf8
**
CentOS 6.7系统下MySQL8.0.11安装完成,linux 7类似,如果有问题欢迎评论。
**