安装部署MySQL
准备工作
关闭防火墙
关闭SElinux
如果机器之前安装过Mariadb,则需要先卸载Mariadb,并删除对应的配置与数据
systemctl stop mariadb
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
rpm -e --nodeps mariadb mariadb-server mariadb-devel
安装MySQL
tar -xf mysql-5.7.17.tar
yum -y install mysql-com*
启动MySQL服务
systemctl start mysqld #首次启动MySQL需要初始化数据,会比较慢
systemctl status mysqld
systemctl enable mysqld
MySQL的主要参数
值 | 描述 |
---|---|
/etc/my.cnf | MySQL的主配置文件 |
/var/lib/masql | MySQL的工作目录 |
3306 | MySQL默认使用的端口号 |
mysqld | MySQL主进程名 |
TCP | 传输协议 |
mysql:mysql | MySQL的所有者和所属组 |
/var/loga/mysql.log | 错误日志 |
MySQL配置管理员密码
安装完成后,默认数据库管理员账户为root
第一次启动时,MySQL会自动的为root账户配置随机密码,我们需要通过日志查看该初始密码。
]# grep password /var/log/mysql.log
- MySQL的登录格式:
]# mysql -uroot -p’初始密码’
#注意:登录MySQL的第一件事是修改密码;若执行其他操作命令会报如下的错误。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement - 修改密码策略
MySQL的密码修改是要符合它的密码策略validate_password_policy
validate_password_policy的值 | 描述 |
---|---|
0或者LOW | 长度 |
1或者MEDIUM(默认) | 长度;数字,大小写,特殊符号 |
2或者STRONG | 长度:数字,大小写,特殊符号;字典文件 |
临时修改密码策略
mysql> set global validate_password_policy=0;
#只验证密码长难度
mysql> set global validate_passsword_length=6;
#默认密码长度为8为,更改密码长度为6位
永久设置密码策略
]# vim /etc/my.cnf #修改配置,增加下面的内容
[mysqld]
validate_password_policy=0
validate_password_length=6
修改登录密码
mysql> alter user user() identified by ‘123456’
#这里user()表示当前登录用户,也可以用root@local来替换
MySQL的基本管理
数据库操作的基本流程
- 连接登录数据库
- 创建数据库
- 创建数据表
- 操作数据记录
- 断开连接
连接MySQL的方法: 命令行、web网页、安装图形化软件、编写脚本(PHP、Java… …)
连接MySQL数据库的语法格式:
]# mysql [-h服务器IP或域名 -u用户名 -p密码 -P端口]
使用exit或quit退出数据库
注意事项:
- MySQL中操作指令不区分大小写(但是变量,密码等自己创建或设定的会区分大小写)
- 每条SQL语句都需要以;结尾
- 默认不支持tab键补齐命令
- \c可以取消书写错误的命令
常用的SQL命令分类:
- DDL数据定义语言(create,alter, drop)
- DML数据操作语言(inseart, update, delete)
- DCL数据控制语言(grant, revoke)
- DTL数据事务语言(commit, rollback, savepoint)
库管理命令
- 查看当前有哪些数据库
mysql> show databases; - 建库[支持中文编码]
mysql> create database 数据库名 [character set utf8mb4]; - 查询建库时支持的编码
mysql> show character set; - 切换数据库
mysql> use 数据库名; - 查看当前在哪个数据库
mysql> select database(); - 删库
mysql> drop database 数据库名;
注意:数据库的命名规则
数字,字母,下划线,不能纯数字;区分大小写;不能使用关键词或特殊符号。
表管理命令
- 查看数据库中所有表
mysql> show tables; - 建表
mysql> create table 库名.表名 (
字段1 数据类型(宽度) 约束条件,
字段2 数据类型(宽度) 约束条件,
… … ); - 修改表名
mysql> alter table 库名.表名 rename 库名.新表名; - 删除表
mysql> drop table 库名.表名;
表字段管理命令
- 查看表字段结构
mysql> desc 数据库名.数据表名; #以表格形式展开
mysql> desc 数据库名.数据表名\G; #以表形式展开 - 增加表字段
mysql> alter table 表名 add 字段名 数据类型(宽度) [约束条件];
#如果添加约束条件,必须添加在最后 - 删除表字段
mysql> alter table 表名 drop 字段名; - 修改表字段类型
mysql> alter table 表名 modifiy 字段名 新数据类型(宽度) [新约束条件]; - 修改表字段名称
- mysql> alter table 表名 change 旧字段名 新字段名 数据类型(宽度) [约束条件];
表数据管理命令
- 查看数据记录
mysql> select <字段名或者*> from 库名.表名 [where 指定条件];
#字段名是查询该条数据对应字段的值; * 代表查询该条数据所有字段对应的值 - 增加数据记录
mysql> insert into 表名 values (值1,值2…);#所有字段对应的值都需要写
mysql> insert into 表名(字段1,字段2) values (值1,值2);#添加对应字段的值
mysql> insert into 表名 values (值列表1),
(值列表2),
… …; - 更新(修改)数据记录
mysql> update 表名 set 字段名=值;#修改所有数据记录的该字段值
mysql> update 表名 set 字段名=值 where 条件; #修改指定条件的数据记录的该字段值 - 删除数据记录
mysql> delete from 库名.表名; #删除该表中的所有数据记录
mysql> delete from 库名.表名 where 指定条件; #删除该表中的指定条件的数据记录