Mysql8.0.15安装

安装包下载

去官网下载包mysql安装包,我下的是社区版,解压到/usr/local/mysql

新增用户组和用户

groupadd mysql
useradd -g mysql mysql

修改属主

chown -R mysql.mysql /usr/local/mysql/

新增相关的mysql目录,并修改属主

这不不要的话,安装会报没有某个目录的错,视情况创建

/var/lib/mysql  
/var/run/mariadb
/var/log/mariadb

数据库初始化

--lower-case-table-names=1 用来指定表名不区分大小写
--initialize-insecure 是不要密码的意思?建议不要用吧
还有一些初始化的参数,详情参考官网说明

bin/mysqld  --initialize --user=mysql --lower-case-table-names=1 --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

初始化之后会分配一个root密码,注意记录,别忘了

初始化如果用了“--lower-case-table-names=1”之后,一定要新建一个my.cnf文件,在这个文件里边也配置上lower-case-table-names=1,不然启动会报错:

Different lower_case_table_names settings for server ('1') and data dictionary ('0').

/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
放这几个位置都可以,参考官方文档:https://dev.mysql.com/doc/refman/8.0/en/option-files.html

配置内容

[mysqld]
lower_case_table_names=1

启动数据库用mysqld_safe

/usr/local/mysql/bin/mysqld_safe

如果不想每次操作都输入脚本的绝对路径的话,可以链接全局命令;也可以把bin目录加到环境变量,看个人喜好

ln -s /usr/local/mysql/bin/mysql /usr/bin/
ln -s /usr/local/mysql/bin/mysql_safe /usr/bin/
ln -s /usr/local/mysql/bin/mysqld /usr/bin/
ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/

登录

mysql -uroot -p
或者
mysql -S /var/lib/mysql/mysql.sock -h localhost -uroot -p 如果前者报“mysql.sock”错的话,主要看你“mysql.sock”放在哪了,mysql用户是不是有权限拿得到

登录进去后,第一件事,修改root的密码,不然不让操作,密码自己定,建议不要太简单的,容易被猜到
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

新增用户&赋予权限

Mysql8将创建账户和赋予权限的操作分开了,不能像以前一样写在一起

  1. 创建账户
    create user '用户名'@'访问主机' identified by '密码';
create user 'root'@'%' identified by '123456';
  1. 赋予权限(修改权限时在后面加with grant option)
    grant 权限列表 on 数据库 to '用户名'@'访问主机' ;
    “访问主机”填'%',意思就是所有ip都能远程访问,不想这样的话,请自行填上需要连接的具体ip地址
grant all privileges on *.* to 'root'@'%' ;
  1. 刷新权限
    flush privileges;
  2. 修改密码加密方式
    官方文档说:

In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password.

但是有些客户端工具不支持“caching_sha2_password”,这个时候就得改下,不然连接的时候会提示不支持,新版客户端工具要是支持且使用没问题的话,可以忽略这段。
新增用户或者修改密码,声明使用的加密方式:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

当然,你也可以把默认加密方式配置在my.cnf里边,或者在启动的时候带上启动参数。参考:官方文档

[mysqld]
default_authentication_plugin=mysql_native_password

参考链接:

官方8.0支持文档
Linux安装mysql 8.0

你可能感兴趣的:(Mysql8.0.15安装)