文章目录
前言
mysql官方搭建文档:https://dev.mysql.com/doc/refman/8.0/en/
一、下载并解压
window版mysql下载:https://dev.mysql.com/downloads/mysql/
下载后解压并到要安装的目录下,我放到了C盘根目录下,以下以安装目录C:\mysql-8.0.25-winx64为例,安装版本为mysql-8.0.25。
二、配置并安装
1.配置文件
在C:\mysql-8.0.25-winx64(mysql安装根目录以下简称“根目录”)下创建配置文件my.cnf(window下的配置文件也可命名为my.ini):
[client]
port=3306
default-character-set = utf8mb4
[mysqld]
# 为避免反斜杠被识别成转义字符使用双反斜杠
# 安装目录
basedir = C:\\mysql-8.0.25-winx64
# 数据库保存目录
datadir = C:\\mysql-8.0.25-winx64\\data
# 端口号
port = 3306
#socket=/tmp/mysql.sock
# key缓存
key_buffer_size=16M
# 接受的数据包的大小,在使用客户端备份还原的时候可能用到
max_allowed_packet=128M
# 错误日志,临时密码生成也在这里
log-error=error.log
# 编码
character-set-server = utf8mb4
collation_server = utf8mb4_general_ci
#default_authentication_plugin=mysql_native_password
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
# 下面是默认的sql_mode
#sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
[mysqldump]
quick
[mysqladmin]
force
MySQL 8.0连接认证使用 caching_sha2_password替换mysql_native_password 部分客户端连接可能报错,可以在配置文件中添加下面的配置:
default_authentication_plugin=mysql_native_password
或修改密码认证为之前的:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
2.初始化安装
生成的临时密码到data/error.log中:
注:mysql读取配置文件的顺序:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\mysql-8.0.25-winx64\my.ini C:\mysql-8.0.25-winx64\my.cnf
mysqld --initialize
或 指定默认配置文件:
mysqld --defaults-file=C:\mysql-8.0.25-winx64\my.cnf --initialize
以管理员身份安装mysql服务:
mysqld --install MySQL8 --defaults-file=C:\mysql-8.0.25-winx64\my.cnf
自动:mysqld --install
手动:mysqld --install-manual
移除:mysqld --remove 服务名
启动服务:
net start mysql8
关闭服务:net stop mysql8
启动报错:
确认根目录/bin下是否有跟mysqld同名的文件,删除即可。
登录并修改密码:
使用初始化时生成的临时密码登录:
mysql -u root -p
密码修改:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
连接报错: Authentication plugin ‘caching_sha2_password’ cannot be loaded
使用如下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root-password';
或修改配置文件(同上面1中注):
[mysqld]
default_authentication_plugin=mysql_native_password
搭建完成!
3.其他Mysql命令
字符编码查看:
SHOW CHARACTER SET;
SHOW COLLATION WHERE Charset = 'utf8mb4';
账户锁定 解锁:
ALTER USER 'jeffrey'@'localhost' ACCOUNT LOCK;
ALTER USER 'jeffrey'@'localhost' ACCOUNT UNLOCK;
权限管理:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE, CREATE ROLE, DROP ROLE ON *.* TO `root`@`localhost` WITH GRANT OPTION;
或:
GRANT ALL ON *.* TO `root`@`localhost` WITH GRANT OPTION;
权限查看:
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER;
SHOW GRANTS FOR CURRENT_USER();
SHOW GRANTS FOR 'jeffrey'@'localhost';
角色创建与赋权限:
CREATE ROLE 'r1', 'r2';
GRANT SELECT ON db1.* TO 'r1';
GRANT INSERT, UPDATE, DELETE ON db1.* TO 'r2';
CREATE USER 'u1'@'localhost' IDENTIFIED BY 'u1pass';
GRANT 'r1', 'r2' TO 'u1'@'localhost';
SHOW GRANTS FOR 'u1'@'localhost';
目前使用角色给账号赋权限,登录可能不会生效还需要设置:(建议直接给账号赋权限)
Command-Line Format | --activate-all-roles-on-login[={OFF|ON}] |
---|---|
System Variable | activate_all_roles_on_login |
Scope | Global |
Dynamic | Yes |
SET_VAR Hint Applies | No |
Type | Boolean |
Default Value | OFF |
配置文件中添加:
[mysqld]
activate_all_roles_on_login=on
创建账号并赋权限:
create user if not exists 'account'@'host' identified with mysql_native_password by 'password';
grant select,insert,update,delete on 指定数据库.指定表 to 'account'@'host';
flush privileges;
修改密码:
alter user 'zjf'@'%' identified with mysql_native_password by 'password';
MySQL8主从同步 https://blog.youkuaiyun.com/u013271384/article/details/130128882
Centos MySQL8 https://blog.youkuaiyun.com/u013271384/article/details/128140715