1、解压MySql 移动到自定义目录下。如:
c:\mysql\mysql-5.7.33\
2、编辑my.ini
创建my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="C:\mysql\mysql-5.7.33"
# 设置mysql数据库的数据的存放目录
datadir="C:\mysql\mysql-5.7.33\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
保证datadir
下填写的data
文件夹存在,没有就创建一个data
目录,也可以存放在别的目录
basedir
和datadir
后面的路径不加引号写法
basedir=C:\\mysql\\mysql-5.7.33
basedir=C:/mysql/mysql-5.7.33
3、初始化、安装mysql服务
添加环境变量
我的电脑->属性->高级系统设置->环境变量->系统变量编辑Path,在尾部追加
;C:\mysql\mysql-5.7.33\bin
打开cmd 并进入到如下位置
c:\mysql\mysql-5.7.33\x
安装mysql服务
mysqld --initialize
mysqld --install
4、启动mysql服务
net start mysql
如果出现 请键入NET HELPMSG 3534
错误解决方法
mysqld remove
然后删除\data\
目录下文件重新执行3、4步骤
5、用户
登录命令
mysql -u root -p
如果是别的安装方式可以指定用户名则替换掉上面的root
。
没有指定用户名的则默认root
具体可以到\data\
目录下.err
结尾日志文件查看初始化创建的root
账号及密码
[Note] A temporary password is generated for root@localhost: -#EIl&pBg4h%
更改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
use mysql;
update user set authentication_string = password('newpass') where user = 'root';
FLUSH PRIVILEGES;
刷新系统权限相关表,如果不执行命令仅仅只会修改user
用户表中的authentication_string
,登录密码不会变更
建议强度较高的密码
在5.6后,mysql内置密码增强机制,低强度密码会报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
丢失密码
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
6、允许用户远程访问
MySQL8+:
需要先创建用户再赋予权限,而5.x版本可以一句话同时创建并赋予权限;
create user 'remote'@'%' identified by 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
其他版本
允许root
用户在任何地方进行远程登录,并具有所有库任何操作权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
允许root
用户在一个特定的IP进行远程登录,并具有所有库任何操作权限
GRANT ALL PRIVILEGES ON *.* TO root@"172.16.16.152" IDENTIFIED BY "password" WITH GRANT OPTION;
允许root
用户在一个特定的IP进行远程登录,并具有所有库特定操作权限
GRANT select,insert,update,delete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "password";
删除用户授权,需要使用revoke
命令
revoke all on TEST-DB from other_user;
该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个other_user
这个用户还是存在。
从用户表内清除用户
DELETE FROM user WHERE user="other_user";
每次操作完都需要重载授权表
FLUSH PRIVILEGES;
7、开启防火墙端口
Windows/Windows server下开放防火墙端口:
注:如果是云服务器可能要在控制台打开3306端口