相关概念
- 不区分大小写
- 主键:可以唯一标识一列数据
- 外键:实现两个表的关联
- 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引
- 索引:类似我们书籍的目录,索引是对数据库表中一列或多列的值进行排序的一种结构
- 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性
安装
- Linux 下安装
1.首先检查一下,是否已经安装
sudo netstat -tap | grep mysql
如果有以上结果,则说明已经安装了,跳过这一部分
2.安装与密码
sudo apt-get install mysql-server mysql-client
安装过程中会让你输入 root 用户密码,随便输入一个即可,只是待会登录要用,你得记住就行。
如果没有要求输入密码,可以用这条命令为 root 用户创建密码:
mysqladmin -u root password “new_password”;
3.检查是否安装成功,重复第一步骤即可
- win10 下安装
1.下载手动安装版
2.解压到你的安装目录
3.在安装目录下创建一个 my.inn 文件,内容如下可适当修改
[client]
port=3306
default-character-set=utf8
[mysqld]
# 设置为MYSQL的安装目录
basedir=E:\\MySQL\\mysql-5.7.21-winx64
# 设置为MYSQL的数据目录
datadir=E:\\MySQL\\mysql-5.7.21-winx64\data
port=3306
character_set_server=utf8
sql_mode=NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER
#开启查询缓存
explicit_defaults_for_timestamp=true
skip-grant-tables
4.配置环境变量
增加一个MYSQL_HOME,另外PATH中的最后也需要加上一句: %MYSQL_HOME%\bin(非win10需要在前面加上英文半角分号)
5.用管理员身份执行cmd
进入安装目录下的 bin 目录
mysqld --initialize-insecure(这条命令是为了使data目录下有正常的mysql文件夹和相关文件)
mysqld install (要在管理员权限下运行)
net start mysql (启动服务)
6.进入MySQL并配置密码
mysql -u root (因为安装时没有配置密码,所以采用无密码登录)
SET PASSWORD = PASSWORD(‘insert password’);
这里注意一下,8.0版本以上的貌似修改了加密方式,所以是不可以用这种方式进行配置密码,会报语法错误,如下
解决方法:
在my.inn文件中添加 default_authentication_plugin=mysql_native_password
而后对密码进行设置
ALTER USER ‘root’@‘localhost’
IDENTIFIED WITH mysql_native_password
BY ‘password’;
初次使用
- 登录
mysql -u root -p
- 查看当前所有数据库 (mysql 数据库中的命令都要带分号)
show databases;
- 进入一个数据库(mysql 为 数据库名称)
use mysql;
- 查看当前数据库中所有的 table
show tables;
- 查看表结构(user 为我们需要查看的表的名字, user 表中存的是MySQL所有的用户信息)
desc user;
- 查找表中的数据(其中 * 表示查找所有的值)
select * from user;
改变排布方式
select * from user\G;
- 退出
quit;
处理连接问题
第一次高高兴兴装完尝试了一下后,我用 kill 命令 kill 了一个 MySQL 的进程,当时以为不要紧,没仔细看;而后等我再想连接的时候,就突然爆了这个错误
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)
这里给出我的解决办法:(好像重装也行,不过我没试(⊙o⊙))
cd /etc/init.d
sudo service mysql stop
sudo service mysql start
注:
ps -ef //查看所有进程
ps -ef | grep mysql //筛选出 mysql 进程
kill id //杀死某个进程