一、部署Mysql数据库
1.下载Mysql 5.7 Yum源
Mysql下载
[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源
[root@localhost ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm [root@localhost ~]# yum -y install mysql-server //安装Mysql
3.启动Mysqld服务
[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.查看初始密码
[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.使用初始密码登陆
[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.修改登陆密码
mysql> alter user root@"localhost" identified by "123qqq...A";
7.使用新密码登陆
[root@localhost ~]# mysql -uroot -p123qqq...A
8.修改密码策略
[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.永久修改密码策略
[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.数据存储流程
- 连接数据库服务器 - 建库 //类似于文件夹 - 建表 //类似于文件 - 插入记录 //类似于文件内容 - 断开连接
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.表存储数据的文件
Mysql >create table 库名.表名(字段名1 类型(宽度),字段名2 类型(宽度), ......)DEFAULT CHARSET=utf8; //指定中文字符集,可以给字符段赋值中文
[root@localhost ~]# LANG="zh_CN.UTF-8" //设置表记录可以写中文
例: 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.记录类似于文件里的行
-select * from 库名.表名; //查看表记录 -insert into 库名.表名 values(值列表); //插入表记录 -update 库名.表名 set 字段=值; //修改表记录 -delete from 表名; //删除表记录
[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 | +-------+---------+