@echo off
@REM 转到存储目录
@REM set MYSQL_PATH=C:\Users\WDAGUtilityAccount\Downloads\mysql-8.0.30-winx64\mysql-8.0.30-winx64
@REM cd %MYSQL_PATH%
cd bin
echo %cd%
@REM 初始化MySQL,记录初始化密码
mysqld --initialize --console
@REM 安装MySQL服务,输入 `mysqld --install [服务名]`(服务名可以不加默认为mysql)
mysqld --install
@REM 启动SQL
net start mysql
@REM 输入初始密码(这样子就进入数据库了,可以更改你的密码了)
mysql -uroot -p
@REM 以下是修改密码过程
mysql> ALTER USER USER() IDENTIFIED BY 'abc123456';# abc123456 为密码
mysql> FLUSH PRIVILEGES;
@pause
@REM 停止SQL
@REM net stop mysql
-- 1. 进入mysql
mysql -u root -p
-- 2. 创建用户
create user 'zhangsan'@'%' identified by 'Abc927**';
-- 这里表示创建一个不限制ip登录的用户 zhangsan
-- 该用户的密码是 Abc927**
-- %代表不限制ip登录
flush PRIVILEGES;
-- 刷新权限,每一次权限更改后都刷新一下
-- 3. 给用户赋权
grant all privileges on test_grant.* to 'zhangsan'@'%' with grant OPTION;
-- 这里表示给用户eexcloud赋予数据库test_grant(这是我之前创建好的数据库)中所有表的所有权限
-- with grant option表示该用户可以给其他用户赋权,但是不能超过该用户的权限
-- 此时查看,用户eexcloud多了一个test_grant数据库
-- 这里的all privileges 可换成select,insert,update,delete,drop,create等
-- 实测:赋予eexcloud用户跟root相同的权限
grant all privileges on *.* to 'zhangsan'@'%' with grant OPTION;
-- 记得完成后刷新权限
flush PRIVILEGES;
-- 4. 查看用户权限
show grants for 'zhangsan'@'%';
-- 5. 撤销用户权限
revoke all privileges on test_grant.* from 'zhangsan'@'%';
-- 这里表示撤销用户testuser1对数据库test_grant的所有操作权限
-- 注意:这里如果这么写,你会发现你打开还是有数据库test_grant(不过你无法操作该数据库了),这是因为我之前创建的时候用到了with grant option,因为all privileges 是除了with grant option的所有权限
-- 执行如下语句 回收用户所有权限即可
revoke all privileges,grant option from 'zhangsan'@'%';
-- 6. 删除用户
drop user 'zhangsan'@'%';
-- 7. 查询所有用户及其权限
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
-- 也可以这样
SELECT User, Host FROM mysql.user;
五、可能遇到的错误操作(没出错就可以跳过了)
第一种情况
解决MySQL初始化报错: mysqld: Can’t create directory ’xxxx’ (ErrorCode 2 - No such file or directory)
将my.ini配置文件里的路径盘符后面的单斜杠改为双斜杠就可以了
修改前:
[mysqld]
port = 3306
basedir=E:\MySQL
datadir=E:\MySQL\data
修改后:
[mysqld]
port = 3306
basedir=E:\\MySQL
datadir=E:\\MySQL\data
再执行mysqld --initialize命令会生成data文件夹及相应文件
第二种
mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法