13-mysql服务部署¶
简单介绍¶
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL 是开源的,目前隶属于 Oracle 旗下产品。
- MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
- MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
- MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
安装mysql¶
首先卸载mariadb
yum -y remove mariadb-libs
安装mysql8.0版本
yum -y localinstall mysql-community-*
启动 MySQL 服务器
使用以下命令启动 MySQL 服务器:
$> sudo service mysqld start
Starting mysqld:[ OK ]
您可以使用以下命令检查 MySQL 服务器的状态:
$> sudo service mysqld status
mysqld (pid 3066) is running.
在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:
- 服务器已初始化。
- SSL 证书和密钥文件在数据目录中生成。
validate_password
已安装并启用。'root'@'localhost
创建了 一个超级用户帐户。超级用户的密码已设置并存储在错误日志文件中。要显示它,请使用以下命令:
grep 'temporary password' /var/log/mysqld.log
2022-01-17T03:51:39.055395Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &Tw7quMt6d=y
通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改 root 密码:
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
配置中文字符集¶
先查看mysql默认字符集
mysql> status;
--------------
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 10
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.27 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb3
Conn. characterset: utf8mb3
UNIX socket: /var/lib/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 5 min 13 sec
Threads: 2 Questions: 13 Slow queries: 0 Opens: 148 Flush tables: 3 Open tables: 64 Queries per second avg: 0.041
--------------
配置mysql配置文件
[root@linux-node76 ~]# vim /etc/my.cnf
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect ='set collation_connection = utf8_general_ci'
init_connect ='set collation_database=utf8_general_ci'
init_connect ='set names utf8'
init_connect ='set character_set_connection=utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
重启mysql服务生效
[root@linux-node76 ~]# service mysqld restart
Redirecting to /bin/systemctl restart mysqld.service
检查msql默认字符集
mysql> show variables like '%character%';
+--------------------------+--------------------------------+
| Variable_name | Value |
+--------------------------+--------------------------------+
| character_set_client | utf8mb3 |
| character_set_connection | utf8mb3 |
| character_set_database | utf8mb3 |
| character_set_filesystem | binary |
| character_set_results | utf8mb3 |
| character_set_server | utf8mb3 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql-8.0/charsets/ |
+--------------------------+--------------------------------+
8 rows in set (0.00 sec)
mysql> status;
--------------
mysql Ver 8.0.27 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 8
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 8.0.27 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb3
Db characterset: utf8mb3
Client characterset: utf8mb3
Conn. characterset: utf8mb3
UNIX socket: /var/lib/mysql/mysql.sock
Binary data as: Hexadecimal
Uptime: 18 sec
Threads: 2 Questions: 6 Slow queries: 0 Opens: 134 Flush tables: 3 Open tables: 53 Queries per second avg: 0.333
--------------
配置mysql空密码¶
升级之后密码需要设置特别复杂,导致自己都记不住,本地开发环境我一般设置成123456,便于记忆
1、查看密码策略
show variables like 'validate_password%';
2、修改密码策略
-- 密码验证策略低要求(0或LOW代表低级)
set global validate_password.policy=0;
-- 密码至少要包含的小写字母个数和大写字母个数
set global validate_password.mixed_case_count=0;
-- 密码至少要包含的数字个数。
set global validate_password.number_count=0;
-- 密码至少要包含的特殊字符数
set global validate_password.special_char_count=0;
-- 密码长度
set global validate_password.length=6;
3、修改密码
ALTER user 'root'@'localhost' IDENTIFIED BY '123456'
4.退出验证mysql密码是否为空
mysql
创建数据库¶
开始创建数据库
CREATE DATABASE `paas_svn` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON paas_svn.* TO 'paas_svn'@'%' IDENTIFIED BY 'paas_svn';
FLUSH PRIVILEGES;
show databases;
mysql -h 192.168.1.104 -u paas_svn -ppaas_svn -e "show databases;"
mysql常用命令¶
https://www.cnblogs.com/bluealine/p/7832219.html
创建测试数据¶
切换到数据库
use demo;
创建表
create table tb_tmp01
(
id INT(11),
name VARCHAR(25),
age INT(11)
);
查看创建的表
show tables;
在表中插入数据
insert into tb_tmp01(id,name,age) value ('001','xiaoming','18');
insert into tb_tmp01(id,name,age) value ('002','zhangsan','20');
insert into tb_tmp01(id,name,age) value ('003','lisi','21');
insert into tb_tmp01(id,name,age) value ('004','wanger','19');
insert into tb_tmp01(id,name,age) value ('005','mazi','25');
查看表中的内容
select * from tb_tmp01;
删除表
drop table tb_tmp01;
将下载的备份文件进行解压
tar xf hins21495719_data_20220509093135.tar
gzip -d demo_datafull_202205090931_1652059895.sql.gz
恢复数据库
mysql -h rm-uf6qdz57x4qi22m23so.mysql.rds.aliyuncs.com -u zhangsan -p demo < /root/demo_datafull_202205090931_1652059895.sql
检查数据是否恢复
mysql -h rm-uf6qdz57x4qi22m23so.mysql.rds.aliyuncs.com -u zhangsan -p
use demo;
select * from tb_tmp01;