1.MySQL安装
Windows:
可执行文件:
点点点
压缩包:
mysql.exe 客户端
放置任意目录
初始化
服务端:mysqld.exe
服务端初始化:cmd --> cd C:\Program Files\MySQL\MySQL Server 5.7\bin --> mysqld --initialize-insecure(在MySQL Server 5.7文件夹下创建了data文件夹)
创建了用户:用户名为root,密码为空
启动服务端:
cmd --> cd C:\Program Files\MySQL\MySQL Server 5.7\bin --> mysqld
启动客户端:
cmd --> cd C:\Program Files\MySQL\MySQL Server 5.7\bin --> mysql -u root -p
(-u后接用户名,-p表示密码)
回车,弹出'Enter password:',因为密码为空,回车(我之前设了密码,所以要输入密码133120),登录成功
服务端和客户端连接起来了
添加环境变量:
path 添加 C:\Program Files\MySQL\MySQL Server 5.7\bin
cmd 就可以直接输入mysqld打开服务端,直接输入mysql -u root -p --> 回车 -->输入密码-->进入MySQL
Windows服务:
通过压缩包安装的需要自己制作Windows服务
安装服务:
cmd --> cd C:\Program Files\MySQL\MySQL Server 5.7\bin --> mysqld --install
移除服务:
cmd --> cd C:\Program Files\MySQL\MySQL Server 5.7\bin --> mysqld --remove
以后直接cmd --> net start mysql57 启动服务 --> net stop mysql57 停止服务
通过可执行文件安装的已经自动帮你做好了Windows服务
2.MySQL语句
文件夹[数据库]
show databases;
看data目录里有几个文件夹
create database db1;
创建文件夹db1
create database db2;
创建文件夹db2
drop database db2;
删除文件夹db2
use db1;
进入数据库db1
文件[表]
show tables;
查看db1的所有表
create table t1(id int,name char(10),age int)
创建三列:id,name,age
id列数据类型为数值
name列数据类型为字符串,限定字符串长度不超过10,超过10的字符串自动把超过的部分删掉
select * from t1;
查看表t1下的所有列
select name from t1;
查看表t1下的name列
select name,age,id from t1;
查看表t1下的name,age,id列(假设表中是按id,name,age从左往右排,这样取的话会先把name列取出来,再把age列取出来,最后把id列取出来)
数据行[行]
insert into t1(id,name,age) values(1,'alex',18);
往表t1插入数据行,值为1,alex,18
数据行[行]
数据行[行]
当插入数据行的内容包含中文字符时,需要先进行以下操作才不会出现编码错误
create database db2 default charset utf8;
create table t1(id int,name char(10),age int) default charset=utf8;
insert into t1(id,name) values(1,'内容');
select id,name from t1;
3.MySQL连接
查看MySQL有几个用户
mysql> show databases;
mysql> use mysql;
mysql> show tables;(最后一行user就是保存用户名和密码的地方)
mysql> select user from user;(可以看到user数据表的user列)
mysql> select user,host from user;(可以看到user数据表的user,host列,即用户名和主机列)
默认:用户root
创建用户:
create user 用户名@ip地址 identified by 密码
如:
create user 'alex'@'192.168.1.1' identified by '123123'(创建alex账号,只能在ip地址为192.168.1.1上登录,密码为123123)
create user 'alex'@'192.168.%' identified by '123123'(创建alex账号,只能在ip地址前缀为192.168.上登录,密码为123123)
create user 'alex'@'%' identified by '123123'(创建alex账号,可以在所有电脑上登录,密码为123123)
授权:(某个用户只能看某个数据库,只能看某个数据库下的某个数据表)
权限 人
grant select(只能查),insert(能查询还能插入,不能更新),update(还能更新) on db1.t1(限定权限在db1数据库的t1数据表) to 'alex'@'%'(限定只有用户alex有权限);
grant all privileges(赋予除授权外的所有功能,只能root用户能授权) on db1.*(对db1的所有数据表有权限) to 'alex'@'%';
revoke all privileges from db1.* to 'alex'@'%';
案例:
cmd --> create user 'alex'@'%' identified by '123123'; --> grant all privileges on db1.* to 'alex'@'%';
另开启一个cmd --> mysql -u alex -p --> (Enter password:)123123 --> show databases;(可以看到的数据库只有两个)