Bootstrap

MySOL初步搭建及探索

安装

下载

在官网中下载https://dev.mysql.com/downloads/mysql/
在下载的根目录下新建一个my.ini 文件:

[mysqld]
# 设置3306端口
port=3306
[mysqld]
# 设置3306端口
port=3306 # 设置mysql的安装目录(存放地址可以更改)
basedir=D:\app\developTools\mysql-8.0.23-winx64\mysql-8.0.23-winx64
# 设置mysql数据库的数据的存放目录(存放地址可以更改)
datadir=E:\MySQL\data
# 允许最大连接数
max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10 # 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集 default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

以管理员身份运行cmd(否则会拒绝访问)

cd命令进入MySQL的bin目录下
在这里插入图片描述
(可以一次性直接进入)

初始化MySQL,输入mysqld --initialize --console,记录初始化密码

启动MySQL 服务(要在管理员身份下运行)

net start mysql(启动SQL)
在这里插入图片描述

net stop mysql(停止SQL)

配置环境变量

系统变量 选中path变量,编辑/新建,将bin路径加入进去,确定/确定
(这一步不配置的话在下一步输入命令行指令时会显示mysql 不是内部或外部命令 巴拉巴拉报错)
在这里插入图片描述

进入mysql

输入指令 mysql -u root -p(-u 代表用户名为root -p 代表密码),之后会提示输入刚刚初始化时记录的密码 成功后将会出现mysql> 指示
在这里插入图片描述

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

一些尝试过很多遍才成功的操作

设置外键

第一次直接对某个表设置外键

mysql> alter table Persons_LOcations
    -> add constraint fk_P_id
    -> foreign key(P_id)
    -> references Persons (Id_P);

结果报错

ERROR 1822 (HY000): Failed to add the foreign key constraint. Missing index for constraint 'fk_P_id' in the referenced table 'persons'

去掉外键约束后

mysql>  alter table Persons_LOcations
    ->  foreign key(P_id)
    ->  references Persons (Id_P);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'foreign key(P_id)
 references Persons (Id_P)' at line 2

再次尝试,先为Persons表(主表)设置主键,再添加外键

mysql> alter table Persons
    -> add constraint P_id
    -> primary key(Id_P);
Query OK, 0 rows affected (0.06 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql>  alter table Persons_LOcations
    -> add constraint fk_P_id
    -> foreign key(P_id)
    -> references Persons (Id_P);
Query OK, 6 rows affected (0.06 sec)
Records: 6  Duplicates: 0  Warnings: 0

成功
总结:设置外键时,主表需要有主键与外键对应

;