grant 权限的时候一定要注意 实体名称不要写错,同时查看的结果是不区分大小写的。

mysql> grant execute on procedure schoolDB.addStudent to ‘zhang’@‘192.168.231.%’;
Query OK, 0 rows affected (0.00 sec)

mysql> show grants for ‘zhang’@‘192.168.231.%’;
±-----------------------------------------------------------------------------------------------------------------+
| Grants for zhang@192.168.231.% |
±-----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON . TO ‘zhang’@‘192.168.231.%’ IDENTIFIED BY PASSWORD ‘*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B’ |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON schoolDB.TStudent TO ‘zhang’@‘192.168.231.%’ |
| GRANT EXECUTE ON PROCEDURE schoolDB.addstudent TO ‘zhang’@‘192.168.231.%’ |
| GRANT EXECUTE ON PROCEDURE schoolDB.getmax TO ‘zhang’@‘192.168.231.%’ |
| GRANT EXECUTE ON PROCEDURE schoolDB.gets TO ‘zhang’@‘192.168.231.%’ |
±-----------------------------------------------------------------------------------------------------------------+
5 rows in set (0.00 sec)

请注意,在grant 语句中 addStudent 是明确了大写的,
但在 查看 show grant 的时候, addstudent却是小写的。
所以,通过此例,在grant 的时候,一定要注意不要写错,否则查找起来非常的费劲。

January the 29th 2022 Saturday

要在Docker容器中安装MySQL 8.0并配置不区分大小写的查询,首先你需要创建一个Dockerfile,然后在容器运行时进行相应的设置。以下是步骤: 1. **创建Dockerfile**: ```Dockerfile # 使用官方MySQL镜像作为基础 FROM mysql:8.0 # 设置环境变量(MYSQL_ROOT_PASSWORD用于初始化时设置密码,MYSQL_DATABASE用于创建数据库) ENV MYSQL_ROOT_PASSWORD=<your_root_password> ENV MYSQL_DATABASE=mydb ENV MYSQL_USER=root ENV MYSQL_PASSWORD=<your_user_password> # 将配置文件复制到容器中,并编辑my.cnf COPY my.cnf /etc/mysql/conf.d/case-insensitive.cnf # 运行容器时启动mysql服务 CMD ["mysqld"] ``` 在这个Dockerfile中,`case-insensitive.cnf`是一个自定义配置文件,内容如下: ```ini [mysqld] lower_case_table_names=2 ``` 这表示启用不区分大小写的表名。 2. **构建Docker镜像**: 在Dockerfile所在的目录下,运行: ```sh docker build -t your-image-name . ``` 3. **运行容器并映射端口**: ```sh docker run -p <host_port>:3306 -e MYSQL_ROOT_PASSWORD=<your_root_password> -v <path_to_data_volume>:/var/lib/mysql your-image-name ``` 这里 `-p` 参数用于将主机的端口映射到容器的3306端口,`-v` 参数则是为了持久化数据。 4. **初始化数据库和用户**: 首次启动容器时,可以连接到容器并执行必要的初始化操作,例如: ```sh docker exec -it your_container_name bash mysql -u root -p<your_user_password> << EOF CREATE DATABASE IF NOT EXISTS $MYSQL_DATABASE; USE $MYSQL_DATABASE; GRANT ALL PRIVILEGES ON $MYSQL_DATABASE.* TO '$MYSQL_USER'@'%' IDENTIFIED BY '$MYSQL_PASSWORD'; FLUSH PRIVILEGES; EOF exit ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值