一、部署Mysql数据库
1.下载Mysql 5.7 Yum源
Mysql下载
代码语言:javascript复制[root@localhost ~]# wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# ls mysql57-community-release-el7-11.noarch.rpm
mysql57-community-release-el7-11.noarch.rpm
2.安装Mysql 5.7 Yum源
代码语言:javascript复制[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
[root@localhost ~]# yum -y install mysql-server //安装Mysql
3.启动Mysqld服务
代码语言:javascript复制[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# ss -antulp | grep :3306
tcp LISTEN 0 80 [::]:3306 [::]:* users:(("mysqld",pid=54086,fd=21))
4.查看初始密码
代码语言:javascript复制[root@localhost ~]# grep 'root@localhost:' /var/log/mysqld.log
2020-03-20T00:57:34.072739Z 1 [Note] A temporary password is generated for root@localhost: hsQ(7(so_cgX
5.使用初始密码登陆
代码语言:javascript复制[root@localhost ~]# mysql -hlocalhost -uroot -p'hsQ(7(so_cgX'
mysql: [Warning] Using a password on the command line interface can be insecure.
...
Server version: 5.7.29
...
mysql>
6.修改登陆密码
代码语言:javascript复制mysql> alter user root@"localhost" identified by "123qqq...A";
7.使用新密码登陆
代码语言:javascript复制[root@localhost ~]# mysql -uroot -p123qqq...A
8.修改密码策略
代码语言:javascript复制[root@localhost ~]# mysql -uroot -p123qqq...A
mysql> show variables like "%password%"; //查看变量
---------------------------------------- -----------------
| 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_auto_generate_rsa_keys | ON |
| sha256_password_private_key_path | private_key.pem |
| sha256_password_proxy_users | OFF |
| sha256_password_public_key_path | public_key.pem |
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
---------------------------------------- -----------------
mysql> set global validate_password_length=6; //修改密码长度
mysql> set global validate_password_policy=0; //修改密码策略
mysql> alter user root@"localhost" identified by "123qqq...A";
9.永久修改密码策略
代码语言:javascript复制[root@localhost ~]# vim /etc/my.cnf
[mysqld]
validate_password_length=6
validate_password_policy=0
二、数据库基本管理
1.客户端连接mysql服务的方法
- 命令行
- Web页面
- 安装图形软件
- 编写脚本(php、java、python…)
2.使用mysql命令
- Mysql -h服务器IP -u用户名 -p密码 数据库名 //直接连接至某个数据库
- Quit或exit //退出数据库
3.数据存储流程
代码语言:javascript复制- 连接数据库服务器
- 建库 //类似于文件夹
- 建表 //类似于文件
- 插入记录 //类似于文件内容
- 断开连接
4.Mysql管理环境
- SQL命令使用规则
- sql命令不区分字母大小写(密码、变量值除外)
- 每条sql命令以 ; 结束
- 默认命令不支持Tab键自动补齐
- c终止sql命令
5.常用的Sql命令分类
- 管理数据库使用SQL(结构化查询语言)
- DDL 数据库定义语言 如:create、alter、drop
- DML 数据库操作语言 如:insert、update、delete
- DCL 数据库控制语言 如:grant、revoke
- DTL 数据库实物语言 如:commit、rollback、savepoint
6.Mysql相关目录及配置文件:
- 主配置文件 /etc/my.cnf
- 数据库目录 /var/lib/mysql
- 默认端口号 3306
- 服务名 mysqld
- 传输协议 TCP
- 进程所有者 mysql
- 进程所属组 mysql
- 错误日志文件 /var/log/mysqld.log
三、Mysql基本操作
---库管理命令
- 库 类似于文件夹,用来存储表
-show databases; //显示已有的库
-select user(); //显示连接用户
-use 库名; //切换库
-select database(); //显示当前所在的库
-create database 库名; //创建新库
-show tables; //显示已有的表
-drop database 库名; //删除库
---库名 命名规则
- 仅可以使用数字、字母、下划线、不能纯数字
- 区分字母大小写,具有唯一性
- 不可使用指令关键字、特殊字符
例:
musql> create database DB1;
Query OK,1 row affected (0.06sec)
musql> create database db1;
Query OK,1 row affected (0.03sec)
---表管理命令
1.表存储数据的文件
代码语言:javascript复制Mysql >create table 库名.表名(字段名1 类型(宽度),字段名2 类型(宽度), ......)DEFAULT CHARSET=utf8; //指定中文字符集,可以给字符段赋值中文
代码语言:javascript复制[root@localhost ~]# LANG="zh_CN.UTF-8" //设置表记录可以写中文
代码语言:javascript复制例:
mysql> create table db1.学生表(姓名 char(10), 家庭地址 char(20)) DEFAULT CHARSET=utf8;
Mysql> create table db1.test(name char(15),home char(20)); //创建在db1数据库中创建表 test,字段1为name,类型是char,宽度是15
2.表类似于文件
- desc 库名.表名; //查看表结构
- drop table 库名.表名; //删除表
例:
mysql> desc db1.test;
------- ------------- ------ ----- --------- -------
| Field | Type | Null | Key | Default | Extra |
------- ------------- ------ ----- --------- -------
| name | char(8) | YES | | NULL | |
| home | varchar(25) | YES | | NULL | |
------- ------------- ------ ----- --------- -------
3.记录类似于文件里的行
代码语言:javascript复制 -select * from 库名.表名; //查看表记录
-insert into 库名.表名 values(值列表); //插入表记录
-update 库名.表名 set 字段=值; //修改表记录
-delete from 表名; //删除表记录
代码语言:javascript复制[root@localhost ~]# mysql -uroot -p123qqq...A
mysql> create table db1.stuinfo(name var(8),country var(10));
mysql> insert into db1.stuinfo values(“jim”,”usa”),(“lilei”,”china”);
mysql> select * from db1.stuinfo;
------- ---------
| name | country |
------- ---------
| jim | usa |
| lelei | china |
------- ---------
mysql >update db1.stuinfo set homeaddr=”beijing”;
mysql> select * from db1.stuinfo;
------- ---------
| name | country |
------- ---------
| jim | beijing |
| lelei | beijing |
------- ---------