MYSQL数据库(以及管理工具)
mysql安装
1、mysql数据库免安装版:https://blog.csdn.net/wzhwangzhuohui/article/details/127787058 或 https://www.jianshu.com/p/04f80f105ba9
- mysql 官网上有下载:可以下载免安装的版本(200多M,个人推荐这个);安装版本(400多M)
- 解压压缩包:
文件 bin/mysqld 是mysql 初始化、配置、启动的控制器 文件 bin/mysql 是mysql 的客户端工具,类似navicat
2、在根目录下 建立一个配置文件 my.ini
- 启动时可能出现的问题:配置中目录分隔符用 “\\”。 https://blog.csdn.net/weixin_40608713/article/details/118051628
3、初始化数据库目录:安装后,只要执行一次就可以了。根据配置消息做一个初始化,并给一个临时 root 密码。
- mysqld --initialize --console 【自动在根目录下找到 配置文件】
如果 my.ini 文件不在根目录下,则需要指定 配置文件路径,即
mysqld --defaults-file=K:\mysql\mysql8.0\my.ini --initialize --console
4、启动、停止 服务
- 启动服务:
# 1、以命令框方式运行: mysqld --console # 窗口退出后,程序退出。 # 2、单独的应用程序模式: mysqld --standalone # 关闭命令窗口程序不退出
- 停止服务:【命令框模式只要 关闭命令框就可以关闭】
mysqladmin -uroot shutdown # 主要是关闭 非命令框启动的服务
mysql 自带的客户端工具(shell工具)
参考:https://www.runoob.com/mysql/mysql-administration.html
1、连接服务器
mysql -h 主机名 -u 用户名 -p
- -h : 指定客户端所要登录的 MySQL 主机名, 登录本机(localhost 或 127.0.0.1)该参数可以省略;
- -u : 登录的用户名;
- -p : 告诉服务器将会使用一个密码来登录, 如果所要登录的用户名密码为空, 可以忽略此选项。
本机登录只要:
mysql -u root -p
2、用户设置:
- 方法1:直接修改user表实现:
如果你需要添加 MySQL 用户,你只需要在 mysql 数据库中的 user 表 添加新用户即可。
-
- 切换到 mysql 数据库
use mysql; -- 切换到mysql数据库
- 向 mysql 数据库的 user 表 插入 用户。(即,数据库的用户权限管理,都在这个 user 表)
INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'guest', PASSWORD('guest123'), 'Y', 'Y', 'Y');
在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。 你可以在以上实例看到用户密码加密后为: 6f8c114b58f2ce9e。
注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。【即,以后的user表中 没有 password字段了】注意:password() 加密函数已经在 8.0.11 中移除了,可以使用 MD5() 函数代替。
注意:在注意需要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会重新载入授权表。
- 设置立即生效:【重新载入授权表】
flush privileges;
- 切换到 mysql 数据库
- 方法2:通过 GRANT 命令 实现。(一般都使用这种方式创建用户)
- 新建用户:
create user '用户名'@'%' identified by '密码';
以上命令会在mysql数据库中的user表创建一条用户信息记录。但是对应的权限都是 无,需要通过 grant 授权 设置。
- 修改用户权限:
如:需要对该新用户指定某个数据库的读写权限。【如果是数据库下所有的表,可以用通配符*。即 数据库命.* 】grant all privileges on *.* to 'root'@'%' with grant option;
注意:当前mysql 8.xx。低版本的mysql授权命令不一样。https://blog.csdn.net/qq_31725371/article/details/83019856
mysql 有哪些权限:https://m.php.cn/article/490761.html
【个人】程序用来连接mysql的用户,给的权限只要针对 某个数据库,有增删改查权限就可以了。grant select,insert,update,delete,create,drop on 数据库.数据表 to 'test'@'%';
- 权限设置立即生效:
flush privileges;
- 查看用户权限:
show grants for '用户名'@'%';
- 删除用户:
drop user '用户名'@'%';
- 新建用户:
管理Mysql的命令
- 列出 数据库管理系统的 所有数据库列表:
show databases;
- 切换到需要操作的数据库:
use 数据库名;
- 显示指定数据库的所有表,使用该命令前需要使用 use 命令来选择要操作的数据库。
show tables;
- 显示数据表的属性,属性类型,主键信息,是否为NULL,默认值 等。
show columns from runoob_tbl;
- 显示数据表的信息索引信息。【不常用】
SHOW INDEX FROM 数据表;
- 显示当前操作的数据库:
select database(); ---显示当前操作的数据库
- 显示当前登录的用户:
select user(); ---显示当前登录的用户
其它操作数据库,一般都用在可视化客户端上操作
Navicat使用教程:
1、Navicat【 Navicat premium 】 数据库管理工具
激活方式:参考 https://blog.csdn.net/sanbingyutuoniao123/article/details/52589678
使用教程:https://www.cnblogs.com/neuedu/p/5876874.html
2、创建数据库:【一般都是先设计好,再手动创建的,而不是程序创建的】
参考:https://blog.csdn.net/qq_38224812/article/details/80745868 或 https://www.cnblogs.com/qtiger/p/13039875.html
a、字符集 :常用 utf8 、 utf8mb4【utf8mb4兼容utf8,如果需要用到 utf8 没有字符,则只能使用utf8mb4。如 emoji 表情字符 等】
b、排序规则 :常用 utf8_general_ci【不区分大小写】、utf8mb4_general_ci https://blog.csdn.net/u011403848/article/details/81163311
3、常用 字段 类型:https://blog.csdn.net/qq_42176520/article/details/100116601 或 其他
a、整型:tinyint【1个字节】、smallint【2个字节】、mediumint【3个字节】、int【4个字节】、biging【8个字节】
b、浮点型:float【单精度】、double【双精度】
c、字符串:char【定长字符串,0-255】、varchar【变长字符串,0-65535】、text【文本串,2w-6w】
eg:char(10)、
d、日期和时间:date【日期】、time【时间】、datetime【日期时间】、year【年份】、timestamp【时间戳】
e、NULL:。
4、数据类型中长度的含义:https://zhuanlan.zhihu.com/p/111028232?from_voters_page=true
a、字符串类型:char(n) 和 varchar(n)两者中的 n 含义均为该字段最大可容纳的字符数。
char是定长的,就是根据实际的长度,多减 少加。存储长度始终为 n。
varchar是变长,只要不超过 指定的 长度。存储长度 就是 实际的长度。
b、整型类型: tinyint ,smallint ,mediumint , int ,bigint 。这5种 整型 的作用空间是固定的,均与其后设置的 n 无关。
【整型后面的n比较鸡肋,没什么用】
c、浮点类型:float、double。这两个和 整型 类似。
5、表中字段太多,滚动不方便,快速跳转到需要的字段上。https://blog.csdn.net/superit401/article/details/108085362
XAMPP数据库相关用法:
1、xampp中数据库除了通过xampp控制面板开启mysql,也可以单独执行mysql。https://www.bbsmax.com/A/amd0er0Lzg/
xampp对mysql的启动和关闭已经写好脚本了(在安装目录下),直接运行脚本就可以了。