mysql的crud和用户授权

165 阅读3分钟

1 本地运行问题

报错:

博客解决:

因为权限问题

2 在docker运行mysql

步骤如下:

docker pull mysql:8.0
docker images
// 运行mysql 容器名为mysql0116 端口为3306 
// 用户名为root 密码为123456
docker run -itd --name mysql0116 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
// 进入mysql
docker exec -it mysql0116 bash
//登录mysql
 mysql -u root -p
 enter password 123456
 // 创建数据库
 create database study;
 show databases
 //查看mysql 端口号
show global variables like 'port';

3 mysql中新建表和列

3.1 查看数据库中的表

show tables
show database
查看表结构
desc table_name;

3.2 创建表

​
create table Info (
ID int, 
NAME varchar(100),
AGE varchar(100) ,
ADDRESS varchar(100),
primary key(ID)
)

3.3 插入数据

insert into Info(ID,NAME,AGE,ADDRESS) 
VAlUES 
(1,'Aob',12,'哈尔滨a'),
(2,'Bob',22,'哈尔滨b'),
(3,'Cob',32,'黑龙江C'),
(4,'Dob',33,'黑龙江D'),
(5,'Eob',34,'黑龙江E'),
(6,'Fob',35,'黑龙江F'),
(7,'Gob',36,'黑龙江G'),
(8,'Hob',37,'黑龙江H'),
(9,'Iob',38,'黑龙江I'),
(10,'Job',39,'黑龙江J'),
(11,'Kob',40,'黑龙江K'),
(12,'Lob',41,'黑龙江L');
​
//自增id
alter table Info modify id int auto_increment;

3.4 新增列

alter table tf_m_process_definition add COLUMN OVERTIME varchar(64);

3.5 修改列 修改数据

修改列名
alter table tf_m_process_definition change TIME OVERTIME varchar(64)
​
更新数据
UPDATE `tf_m_process_definition` SET`OVERTIME`=3, `TIME_TYPE`=1 WHERE `ID`='1';
​

4. 修改mysql root用户密码

方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set password for 用户名@localhost = password(‘新密码’); 例子:mysql> set password for root@localhost = password(‘123’);

方法2:用mysqladmin

不登录

格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot -p123456 password 123

5. 创建用户

create user 'test'@'localhost' identified by '123';

授权

GRANT privileges ON databasename.tablename TO 'username'@'host'
GRANT privileges ON *.* TO 'mdop'@'host'

其他问题

1. 数据库连接提示:未知数据库

unknown database study

已解决

image-20220112183200031

image-20220112183118337

重启mysql restart容器

博客:blog.csdn.net/qq_33390700…

2. Docker容器无法启动,启动后报错:

error invoking remote method 'docker-start-container': error: (http code 500) server error - ports are not available: listen tcp 0.0.0.0:3306: bind: an attempt was made to access a socket in a way forbidden by its access permissions. 1 首先重启计算机(宿主),重启后在命令行(或WSL2)执行

docker ps -a 1 查看无法启动的容器ID,接着执行

docker restart 容器ID

3. Unknown database ‘mydb’”

开始-运行-cmd, 输入 netstat -ano, 看第一列,后面的就是端口,找到3306 ,记住对应的PID

然后打开任务管理器查看 -> 选择列 -> 勾上 PID(进程标识符) -> 确定

4. 数据库无法插入中文

Incorrect string value: '\xE6\x96\x87\xE7\xAB\xA0' for column 'content' at row 1

alter table study.Info change NAME NAME varchar(100) character set utf8;

![image-20220210093541799](mdtuchuang.oss-cn-beijing.aliyuncs.com/img/2022021…

5. 总是提示:未知数据库

unknown database study 未解决 创建数据库并使用dbeaver链接工具进行连接 报错:公钥 解决: 修改配置 解决方法: 百度关键词 dbeaver 链接数据库xxx