1.什么是数据库(简介,如需详情请自行百度)
MySQL是一个数据库管理系统,也是一个关系数据库。它是由Oracle支持的开源软件。这意味着任何一个人都可以使用MySQL而不用支付一毛钱。 另外,如果需要,还可以更改其源代码或进行二次开发以满足您的需要。
linux 安装
sudo apt install mysql-server
2.连接数据库
#mysql安装后默认有一个root用户,可以先使用root用于登陆$>mysql -u 用户名 -p$>mysql -u root -pwindow把 C:\Program Files\MySQL\MySQL Server 8.0\bin,加到环境变量中,才可以在终端上运行: mysql -uroot -plinux配置文件/etc/mysql/mysql.conf.dlinux中重启mysql:service mysql restart或者/etc/init.d/mysql restart
2-1:用户管理:
2-1-1:创建用户(需要使用root用户)
create user ‘用户名’@‘IP地址’ identified by ‘密码’;
IP地址一共有三种:localhost -> 代表本地,只能进行本地的登陆x.x.x.x -> 代表某一IP地址段,一般最后一位用%% -> 代表所有,允许远程访问,包括localhost和x.x.x.x
# 允许eric用户在本地登录>create user 'eric'@'localhost' identified by '123456';# 允许10.0.122.*网段使用eric用户登录>create user 'eric'@'10.0.122.%' identified by '123456';# 允许eric用户在任何地方登录>create user 'eric'@'%' identified by '123456';>create user eric identified by '123456';
2-1-2:查看用户:
>use mysql; #切换数据库>select user,host from user; #查询user数据库中的用户和登陆地址
2-1-3:删除用户:
>drop user '用户名'@'IP地址';
2-1-4:修改用户密码:
>set password for '用户名'@'IP地址' = password('新密码');>set password for '用户名'@'IP地址' = '新密码';
2-2:授权管理:需要root用户
2-2-1:查看权限:
show grants for ‘用户名’@‘IP地址’;
2-2-2:给用户授权:
grant 权限 on 数据库.表 to ‘用户名’@‘IP地址’;
#用户eric只能对axf数据库下的t1表进行查看和插入操作>grant select,insert on axf.t1 to 'eric'@'%';#用户eric只能对axf数据库下的所有表进行查看和插入操作>grant select,insert on axf.* to 'eric'@'%';#给用户eric对axf数据库的所有表,添加所有权限>grant all privileges on test.* to eric;#给用户eric对所有数据库的所有所有表,添加所有权限>grant all privileges on *.* to eric;#取消授权:>revoke 权限 on 数据库.表 from '用户名'@'IP地址';
#更改用户可登录ip地址>use mysql;>update user set host='localhost' where user='root';#如果是其它用户还需要授权grant usage on *.* to eric;
#将数据读取到内存,立即生效>flush privileges
Mysql开启远程连接1、#登陆mysql$ mysql -uroot -pmysql> use mysql;mysql> update user set host = '%' where user = 'root';mysql> select host, user from user;+-----------+------------------+| host| user |+-----------+------------------+| % | root || localhost | debian-sys-maint || localhost | mysql.session || localhost | mysql.sys |+-----------+------------------+4 rows in set (0.00 sec)2、#ok 退出MySQL 重启服务mysql> quit;$ service mysql restart#发现客户端远程还是连接不上 继续修改f配置文件#需要root权限,配置文件是只读的$ sudo vim /etc/mysql/mysql.conf.d/f#第43行改成0.0.0.0bind-address= 0.0.0.0#重启服务$ service mysql restart;#ok 可以了
3.管理mysql常用命令
这里是重要的MySQL命令,经常在MySQL数据库的管理或工作中使用:
#创建数据库#数据库编码为utf-8:>create database 数据库名 charset utf8;#数据库编码为gbk:>create database 数据库名 default charset gbk;
#删除数据库>drop database 数据库名
#查看当前选择的数据库>select database();
#查找记录select * from mysql.user;
#查看前用户select user();
#用于选择在MySQL工作区指定的数据库。>use 数据库名;
#列出了MySQL数据库管理系统中的所有可访问的数据库。>show databases;
#显示已经选择数据库中的表的命令。>show tables;
#MySQL数据库断开>exit#查看表结构desc 表名;
4.CRUD
4-1、增
建表:
CREATE TABLE table_name (column_name column_type);
例如:
create table student(id int not null auto_increment primary key,sex bit,age int default'18',name char(20),info varchar(100),birthday date);
注意:
a、全列插入
格式:insert into 表名 values(…);
说明:主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功以后以实际数据为准
示例:insert into student values(0,“tom”,19,1,“北京”,0);
b、缺省插入
格式:insert into 表名(列1,列2,……) values(值1,值2,……);
说明:表名后注明需要插入的属性,这样就可以选择性的插入允许为空的数据
示例:insert into student(name,age,address) values(“lilei”,19,“上海”);
c、同时插入多条数据
格式:insert into 表名 values(…),(…),……
说明:无
示例:insert into student values(0,“hanmeimei”,18,0,“北京”,0),(0,“poi”,22,1,“海南”,0),(0,“wenli”,20,0,“石家庄”,0);
4-2、删
格式:delete from 表名 where 条件;
示例:delete from student where id=4;
注意:没有条件是全部删除,慎用
4-3、改
格式:update 表名 set 列1=值1,列2=值2,…… where 条件;
示例:update student set age=16 where id=7;
注意:没有条件是全部列都修改,慎用
4-4、查
说明:查询表中的全部数据
格式:select * from 表名;
示例:select * from student;