安装mysql
在mysql文件夹根目录下创建mysql配置文件my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql-8.0.18
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql-8.0.18\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
注意:需要将basedir和datadir改成你电脑mysql的安装路径
进入mysql的bin文件夹下,cmd管理员身份运行
mysqld --install(安装)
mysqld --initialize(初始化)
net start mysql(运行)
设置mysql登录密码
在mysql的data文件夹下有一个err文件,查看初始密码:
用这个密码登录mysql,登录成功后,输入以下命令修改密码:
mysql> alter user user() identified by 'new password';
配置环境变量
在Path中添加变量
D:\mysql-8.0.18\bin(mysql的bin文件夹所在路径)
启动mysql
net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
登录mysql
mysql -uroot -p
输入密码,登录成功显示“Welcome to the MySQL monitor.”字样,出现mysql>
光标闪烁
显示存在的所有数据库
mysql> show databases;
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
±-------------------+
5 rows in set (0.01 sec)
创建数据库test1
mysql> create database test1;
Query OK, 1 row affected (0.00 sec)
删除数据库test1
mysql> drop database test1;
Query OK, 0 rows affected (0.01 sec)
使用test1数据库
mysql> use test1;
Database changed
显示当前操作的数据库
mysql> select database();
±-----------+
| database() |
±-----------+
| test1 |
±-----------+
1 row in set (0.00 sec)
在test1数据库中创建stu数据表
mysql> create table stu(
-> id int,
-> 学号 varchar(10),
-> 姓名 varchar(10),
-> 性别 varchar(2)
-> );
Query OK, 0 rows affected (0.03 sec)
查看stu数据表的表结构
mysql> desc stu;
±-------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±-------±------------±-----±----±--------±------+
| id | int(11) | YES | | NULL | |
| 学号 | varchar(10) | YES | | NULL | |
| 姓名 | varchar(10) | YES | | NULL | |
| 性别 | varchar(2) | YES | | NULL | |
±-------±------------±-----±----±--------±------+
4 rows in set (0.01 sec)
查看当前数据库中所有的表
mysql> show tables;
±----------------+
| Tables_in_test1 |
±----------------+
| stu |
±----------------+
1 row in set (0.00 sec)
查看stu数据表中的所有数据
mysql> select * from stu;
Empty set (0.00 sec)
在stu数据表中插入数据
mysql> insert into stu set
-> id=2,
-> 学号=10086,
-> 姓名='傻狗',
-> 性别='女';
Query OK, 1 row affected (0.01 sec)
设置主键id
alter table stu add primary key(id);
设置主键id自增长
alter table stu modify id int auto_increment;
设置主键id自增长初始值
alter table stu auto_increment=1;
查看stu数据表中所有数据
mysql> select * from stu;
±-----±-------±-------±-------+
| id | 学号 | 姓名 | 性别 |
±-----±-------±-------±-------+
| 2 | 10086 | 傻狗 | 女 |
±-----±-------±-------±-------+
1 row in set (0.00 sec)
删除stu数据表
mysql> drop table stu;
Query OK, 0 rows affected (0.01 sec)
退出mysql数据库
mysql> \q
Bye
关闭mysql
net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
mysql 用户及权限管理 小结
MySQL 默认有个root用户,但是这个用户权限太大,一般只在管理数据库时候才用。如果在项目中要连接 MySQL 数据库,则建议新建一个权限较小的用户来连接。
在 MySQL 命令行模式下输入如下命令可以为 MySQL 创建一个新用户:
CREATE USER username IDENTIFIED BY ‘password’;
新用户创建完成,但是此刻如果以此用户登陆的话,会报错,因为我们还没有为这个用户分配相应权限,分配权限的命令如下:
GRANT ALL PRIVILEGES ON . TO ‘username’@‘localhost’ IDENTIFIED BY ‘password’;
授予username用户在所有数据库上的所有权限。
如果此时发现刚刚给的权限太大了,如果我们只是想授予它在某个数据库上的权限,那么需要切换到root 用户撤销刚才的权限,重新授权:
EVOKE ALL PRIVILEGES ON . FROM ‘username’@‘localhost’;
GRANT ALL PRIVILEGES ON wordpress.* TO ‘username’@‘localhost’ IDENTIFIED BY ‘password’;
甚至还可以指定该用户只能执行 select 和 update 命令:
GRANT SELECT, UPDATE ON wordpress.* TO ‘username’@‘localhost’ IDENTIFIED BY ‘password’;
这样一来,再次以username登陆 MySQL,只有wordpress数据库是对其可见的,并且如果你只授权它select权限,那么它就不能执行delete 语句。
另外每当调整权限后,通常需要执行以下语句刷新权限:
FLUSH PRIVILEGES;
删除刚才创建的用户:
DROP USER username@localhost;
仔细上面几个命令,可以发现不管是授权,还是撤销授权,都要指定响应的host(即 @ 符号后面的内容),因为以上及格命令实际上都是在操作mysql 数据库中的user表,可以用如下命令查看相应用户及对应的host:
SELECT User, Host FROM user;