目录
安装
下载
在官网中下载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
成功
总结:设置外键时,主表需要有主键与外键对应