1》 安装包准备
官网网址:MySQL :: Download MySQL Community Server
2》 卸载mariadb
- 查询mariadb 是否安装
[root@bogon local]# rpm -qa | grep mariadb mariadb-libs-5.5.60-1.el7_5.x86_64
- 卸载 mariadb
#卸载mariadb rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps #查看是否写在成功 rpm -qa | grep mariadb
3》 安装mysql
- 解压
# 进入下载目录 /usr/local/src/ # 解压 tar -zxvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.gz # 查看 ls # 显示内容: # mysql-8.0.27-linux-glibc2.12-x86_64 ..... # 移动解压后的文件夹至/usr/local mv /usr/local/src/mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/ cd /usr/local/ # 重命名 mv ./mysql-8.0.27-linux-glibc2.12-x86_64 mysql-8.0 # 创建文件夹data,存储文件; cd /usr/local/mysql-8.0/ mkdir ./data
- 创建用户及用户组
# 用户组 groupadd mysql # 用户 (用户名/密码) useradd -g mysql mysql
- 授权
chown -R mysql.mysql /usr/local/mysql-8.0/
- 初始化数据库
注意:8.0版本后很多配置只能在初始化时设置,my.ini不生效,而且回启动报错
# 查看当前所在目录 pwd # 若显示/usr/local/mysql-8.0,请继续执行,否则请先进入此目录/usr/local/mysql-8.0 # 1.注意查看是否存在相关目录,若不存在,请新建 # 2.lower-case-table-names=1 设置大小写不区分,默认为0区分 # 3.--console 打印日志,保存初始密码 ./bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0/ --datadir=/usr/local/mysql-8.0/data/ --lower-case-table-names=1 --initialize --console
上图中红框为临时密码,请保存
4》mysql服务配置
- 配置mysql
#编辑文件 vi /etc/my.cnf #将下方配置配置到 my.cnf中 [mysqld] datadir=/usr/local/mysql-8.0/data basedir=/usr/local/mysql-8.0 port=3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=600 innodb_file_per_table=1 log-error=/usr/local/mysql-8.0/data/error.log lower_case_table_names=1
- 创建服务
# 添加Mysql到系统服务 cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld,如下图所示 chmod +x /etc/init.d/mysql chkconfig --add mysql # 检查服务是否生效 chkconfig --list mysql
- 启动服务
# 启动 service mysql start; # 查看启动状态 service mysql status;
- 登录mysql
# 登陆 mysql -uroot -p # 输入"初始化数据库"操作时的"临时密码"
问题及解决方案:
[root@bogon mysql-8.0]# mysql -uroot -p bash: mysql: 未找到命令... [root@bogon mysql-8.0]# ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin/ [root@bogon mysql-8.0]# mysql -uroot -p Enter password: #修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
5》 连接mysql
- 设置远程连接
use mysql update user set host ='%' where user='root'; FLUSH PRIVILEGES;
注意:8.0后不支持: grant all privileges on *.* to 'root'@'%' identified by '密码';