DataBases
简介
MariaDB
MySQL
数据类型
创建表
索引 index
主键 primary key
外键 foreign key
数据导入与导出
where条件判断
用户授权与密码
数据备份与恢复
数据热备
主从同步
读写分离
多实例
分库分表
集群-MHA
集群-PXC
存储引擎
本文档使用 MrDoc 发布
-
+
home page
MySQL
#### 简介 DB(DataBase)数据库:依照某种数据模型进行组织并存放到存储器的数据集合 DBMS(DataBase Management System)数据库管理系统:用来操作和管理数据库的服务软件 DBS(DataBase System)数据库系统:即DB+DBMS,指带有数据库并整合了数据库管理软件的计算机系统 数据存储流程:链接数据库服务器-建库-建表-插入记录-断开连接 MySQL特点:适用于中小规模、关系型数据库系统,支持Python、Java、Perl、PHP等编程语言 mysql安装包官网下载地址:https://downloads.mysql.com/archives/community/ 工作目录:/etc/my.cnf 数据目录:/var/lib/mysql 日志目录:/var/log/mysqld.log 服务端口:3306 #### 部署 下载安装包 ```asp https://pan.cddone.com/d/package/tar/mysql/mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar ``` 解压 ```asp tar -xvf mysql-5.7.17-1.el7.x86_64.rpm-bundle.tar ``` 删除重复的主包 ```asp rm -rf mysql-community-server-minimal-5.7.17-1.el7.x86_64.rpm ``` 安装 ```asp yum -y install mysql-community-*.rpm ``` 启动 ```asp systemctl start mysqld ``` 设置自启动 ```asp systemctl enable mysqld ``` #### 基本配置 查看初始化密码 ```asp grep -i password /var/log/mysqld.log ``` 登陆 ```asp mysql -hlocalhost -uroot -p'初始化密码' ``` 重置密码 ```asp alter user root@'localhost' identified by "123456"; ``` 版本5.8以上重置密码 ```asp ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; ``` ```asp FLUSH PRIVILEGES; ``` 设置root用户允许从其他主机登录 ```asp update mysql.user set host='%' where user='root'; ``` 创建新用户用户允许从其他主机登录 ```asp CREATE USER 'done'@'%' IDENTIFIED BY '123456'; ``` ```asp GRANT ALL PRIVILEGES ON *.* TO 'done'@'%'; ``` ```asp FLUSH PRIVILEGES; ``` 添加权限(”wordpress.*“ 特定库下所有表 ```asp grant all privileges on wordpress.* to 'webdone'@'localhost'; ``` ```asp FLUSH PRIVILEGES; ``` 删除权限(”*.* “ 所有库下所有表) ```asp REVOKE ALL PRIVILEGES ON *.* FROM 'webuser'@'localhost'; ``` ```asp FLUSH PRIVILEGES; ``` #### 密码策略 查找变量(like=模糊查找)包含password ```asp show variables like "%password%"; ``` ```asp +---------------------------------------+--------+ | Variable_name | Value | +---------------------------------------+--------+ | default_password_lifetime | 0 | | disconnect_on_expired_password | ON | | log_builtin_as_identified_by_password | OFF | | mysql_native_password_proxy_users | OFF | | old_passwords | 0 | | report_password | | | sha256_password_proxy_users | OFF | | validate_password_check_user_name | OFF | | validate_password_dictionary_file | | | validate_password_length | 8 | #默认长度是8字符以上 | validate_password_mixed_case_count | 1 | | validate_password_number_count | 1 | | validate_password_policy | MEDIUM | #策略默认是1 | validate_password_special_char_count | 1 | +---------------------------------------+--------+ ``` 策略的3种模式: ```asp 0:LOW #长度 1:MEDIUM #数字/大写/小写/特殊符号 2:STRONG #数字/大写/小写/特殊符号/字典文件 ``` 策略修改-临时 ```asp set global validate_password_policy=0; #策略模式为0(只验证长度) set global validate_password_length=4; #最低长度为1个字符 alter user webdone@"localhost" identified by "123456"; #修改密码 ``` 策略修改-永久 ```asp vim /etc/my.cnf #修改主配置文件,直接加入变量信息重启服务后生效 validate_password_policy=0 #策略模式为0(只验证长度) validate_password_length=6 #最低长度为1个字符 ``` #### 忘记密码 1、修改主配置文件 ```asp vim /etc/my.cnf ``` 2、添加跳过验证密码 ```asp skip-grant-tables ``` 3、重启服务 ```asp systemctl restart mysqld ``` 4、登录数据库 ```asp mysql -uroot ``` 5、修改密码 ```asp update mysql.user set authentication_string=password('123456') where User='root' and Host='localhost'; ``` 6、重新加载授权表 ```asp FLUSH PRIVILEGES; ``` #### 增删改查 ```asp select database(); #查看当前所在库 select user(); #查看当前登录的用户 create database db1; #创建库 use db1; #进入库 drop database db1; #删除库 ``` ```asp create table db1.t1(name char(15), homeaddr char(20)); #在db1库中新建一个t1表2个字段 show tables; #查看表 desc db1.t1; #查看表结构 insert into db1.t1 values("done","usa"),("lilei","china"); #在t1表中插入2行内容 insert into db1.t1 (name) values ("tom"); #在t1表中插入单独name列的数据 select * from db1.t1; #查看字段的内容 update db1.t1 set homeaddr="beijing" where name="lilei"; #修改字段内容-根据条件 delete from db1.t1 where name="done"; #删除字段内容-根据条件 delete from db1.t1 where name like 'done%'; #删除字段内容-根据相关性包含done开头的都删除 delete from db1.t1; #不加条件直接清空整个表中内容 drop table db1.t1; #删除表 alter table db2.t1 modify id int auto_increment; #修改表结构 ``` ```asp show create table 学生表; #查看建表1时候字段的规则 +-----------+----------------------------+ | Table | Create Table | +-----------+----------------------------+ | 学生表 | CREATE TABLE `学生表` ( `姓名` char(10) DEFAULT NULL, `年龄` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | #latin1是英文字符集 +-----------+----------------------------+ create table 学生表2(姓名 char(10),年龄 int)DEFAULT CHARSET=utf8; #创建表指定字符集为utf8 show create table 学生表2; #查看建表2时候字段的规则 +------------+----------------------------+ | Table | Create Table | +------------+----------------------------+ | 学生表2 | CREATE TABLE `学生表2` ( `姓名` char(10) DEFAULT NULL, `年龄` int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | #tuf8是中文字符集 +------------+-----------------------------+ ```
done
May 15, 2024, 2:27 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
share
link
type
password
Update password