linux(centos 7)安装mysql 8.0.x

[TOC]

1 下载mysql安装包(免费社区版)

下载mysql

image.png

2 安装

2.1 解压

cd /home/mhp/files
tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

2.2 移动到相应目录

mv /home/mhp/files/mysql-8.0.18-linux-glibc2.12-x86_64 /usr/local

2.3 重命名

cd /usr/local
mv ./mysql-8.0.18-linux-glibc2.12-x86_64 mysql

2.4 创建数据文件夹

cd /usr/local/mysql
mkdir data

2.5 创建用户及用户组

用户组:
groupadd mysql
用户:
useradd -g mysql mysql

2.6 授权

此步骤十分重要 网上好多其他教程都是授权到data文件夹,导致无法启动
chown -R mysql.mysql /usr/local/mysql

2.7 配置文件

在mysql 8.0开始,忽略表名大小写的配置在数据库初始化后无法更改了,所以要提前增加配置
vim /etc/my.cnf
在my.cnf中增加以下配置

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
server-id = 1
basedir = /usr/local/mysql
datadir=/usr/local/mysql/data
bind-address = 0.0.0.0  # 表示允许任何主机登陆MySQL
port=3306               # 表示MySQL运行端口为3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
log-error = /usr/local/mysql/data/error.log #添加
tmpdir = /var/tmp #不建议放在/tmp下
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
[mysqld_safe]
log-error=/var/log/mysqld.log
max_allowed_packet=20M

2.8 初始化mysql

cd /usr/local/mysql
./bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
此时会生成一个临时密码,一定要牢记,下一步修改密码是会用到
如果没有生成信息,那么需要到cat /usr/local/mysql/data/error.log中寻找临时密码

如果报错./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
yum 安装的libnuma.so.1,但安装时默认安装的是32的,或没有安装但需要的是64位的
1.如果已经安装了libnuma.so.1,先yum remove libnuma.so.1
2.yum -y install numactl.x86_64

2.9 启动mysql服务

通过service mysql start启动
查找mysql.server服务路径 find / -name "mysql.server"
用找到的地址$path执行 cp $path /etc/init.d/mysql
启动 service mysql start

2.10 修改密码

  • 登录 mysql -uroot -p
  • 输入上面步骤的临时密码
  • ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    FLUSH PRIVILEGES;

2.11 解决无法远程登录

查找原因:

  • 登录 mysql -uroot -p

  • use mysql;

  • 查看root用户host:select host from user where user='root';发现只能通过localhost登录,需要改成任意地址%

    image.png

  • update user set host = '%' where user ='root';

  • 刷新配置flush privileges;

  • 如果出现下面的连接错误信息

    image.png

    修改加密规则
    ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
    更新密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。