安装包下载
去官网下载包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将创建账户和赋予权限的操作分开了,不能像以前一样写在一起
- 创建账户
create user '用户名'@'访问主机' identified by '密码';
create user 'root'@'%' identified by '123456';
- 赋予权限(修改权限时在后面加with grant option)
grant 权限列表 on 数据库 to '用户名'@'访问主机' ;
“访问主机”填'%',意思就是所有ip都能远程访问,不想这样的话,请自行填上需要连接的具体ip地址
grant all privileges on *.* to 'root'@'%' ;
- 刷新权限
flush privileges; - 修改密码加密方式
官方文档说:
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