>记录生活, 工作的点点滴滴...

centos下MySQL安装配置

下载

https://dev.mysql.com/downloads/mysql/下载Linux-Generic版本
uname -a查看系统架构, 选择相应版本.
... x86_64 x86_64 x86_64 GNU/Linux 这里选择64位minimal版, 使用wget命令下载至本地:

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-linux-x86_64-minimal.tar

解压缩

tar xvf mysql-8.0.18-linux-x86_64-minimal.tar 下载的这个版本解压后会有三个文件:

 mysql-8.0.18-linux-x86_64-minimal.tar.xz
 mysql-router-8.0.18-linux-x86_64-minimal.tar.xz
 mysql-test-8.0.18-linux-x86_64-minimal.tar.xz

其中中有第一个文件是有用的, 解压用到的只是该文件 tar xvf mysql-8.0.18-linux-x86_64-minimal.tar.xz

安装

参考MySQL documentation

  1. 检查mysql依赖包libaio是否已安装, centos 下 yum search libaio, 如示安装则安装之yum install libaio
  2. 创建mysql用户组
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
  1. 配置安装
# 进入要安装到的目录
shell> cd /usr/local
# 解压到当前目录
shell> tar xvf /bs/mysql-8.0.18-linux-x86_64-minimal.tar.xz
# 设置为符号链接
shell> ln -s mysql-8.0.18-linux-x86_64-minimal/ mysql
# 目录加入环境变量
shell> export PATH=$PATH:/usr/local/mysql/bin

shell> cd mysql
shell> mkdir data
shell> chown mysql:mysql data
shell> chmod 750 data
# 初始化, 结束后会生成初始密码
shell> bin/mysqld --initialize --user=mysql
# 结果出现如下字样, 初始化成功, 并谨慎保存临时密码, 后续登录有用
# A temporary password is generated for root@localhost: ZJAhY?Avg6:q
shell> bin/mysql_ssl_rsa_setup
# 启动服务
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

修改初始密码

# 登录mysql, 密码即为上步中生成的临时密码
shell> bin/mysql -u root -p

# 修改密码
alter user 'root'@'localhost' identified by 'xxxxxxx';

创建非root用户

一般root用户权限应仅限本地登录, 远程登录尽量以非root用户登录. 创建新用户方法如下: 登录mysql后

mysql> ? grant;  # ? 表示帮助, 此命令会显示grant命令的文档
# 参考文档例子, 创建新用户
mysql> CREATE USER 'jeffrey'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL ON db1.* TO 'jeffrey'@'localhost';

*.* 指 数据库.表 所以*.* 为所有数据库和表. ‘jeffrey’@'%’ 为所有主机可登录.‘jeffrey’@‘127.23.32.33’ 为ip127.23.32.33可登录.

在安装mysql8的时候如果选择了密码加密,之后用客户端连接比如navicat,会提示客户端连接caching-sha2-password,是由于客户端不支持这种插件,可以通过如下方式进行修改:

#更新密码(mysql_native_password模式)    
mysql> ALTER USER 'jeffrey'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

发表于:2020-03-30 09:31:26浏览(67) 评论(0) MySQL