MySQL 数据库-安装 MySQL 数据库
现在向大家介绍MySQL数据库的安装过程以及相关注意事项……期待与大家交流!
我是个人公众号「想吃西红柿」与「云原生运维实战派」的作者,在云原生运维领域持续探索与实践。基于工作积累的技术经验与心得体会,在未来的日子里将分享工作中涉及的各类运维技术,并在运维路上给予支持与共同进步。
看完这篇文档后觉得有帮助的朋友不妨关注我的个人公众号「想吃西红柿」获取更多相关资源。希望能在未来的学习中结识更多志同道合的朋友。
爱使用云计算技术的人同时也热爱生活。
1、安装 MySQL Repository
1、默认 yum 存储库安装
[root@edenluo.com ~]# yum -y install wget # 安装 wget下载工具
[root@edenluo.com ~]# wget https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm # 下载 mysql 官方 yum 源安装包
[root@edenluo.com ~]# yum -y localinstall mysql57-community-release-el7-11.noarch.rpm # 安装 mysql 官方 yum 源
[root@edenluo.com ~]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql
2、选择指定发行版本安装
当使用 MySQL Yum 存储库时,默认情况下会自动选择即将安装的最新GA版本MySQL. 默认会激活当前指定为最新GA系列(如MySQL 8.0)的所有子存储库. 而其他未指定的系列(如MySQL 5.7)的所有子存储库则会被禁用. 用户可以通过相应的管理界面来查看哪些存储库已经被启用或被禁用状态.
1、列出所有版本
[root@edenluo.com ~]# yum repolist all | grep mysql
- 识别最新8.0版本处于启用状态,并确认其标识符为enabled;而当前系统中显示为 disabled 的是5.7版本。当需安装5.7版本时,则应将当前系统中的8.0版本进行禁用处理后重新启动系统以完成切换。
2、安装 yum 配置工具
[root@edenluo.com ~]# yum -y install yum-utils
3、禁用 8.0 版本
[root@edenluo.com ~]# yum-config-manager --disable mysql80-community
4、启用 5.7 版本
[root@edenluo.com ~]# yum-config-manager --enable mysql57-community
5、检查启用版本
- 注意: 进行安装时请确保只有一个版本启用,否则会显示版本冲突
[root@edenluo.com ~]# yum repolist enabled | grep mysql
2、安装 MySQL
- 需要安装MySQL Server, MySQL client 已经包括在 server 套件内
[root@edenluo.com ~]# yum -y install mysql-community-server mysql # 安装服务端,客户端
[root@edenluo.com ~]# systemctl start mysqld # 启动 mysql 服务
[root@edenluo.com ~]# systemctl enable mysqld # 设置 mysql 服务开机启动
[root@edenluo.com ~]# ls /var/lib/mysql # 查看 mysql 安装
[root@edenluo.com ~]# grep 'temporary password' /var/log/mysqld.log # 获取首次登录密码
[root@edenluo.com ~]# mysql -uroot -p'awm3>!QFl6zR' # 登录mysql数据库
mysql > alter user 'root'@'localhost' identified by 'Qf.123com'; # 修改 mysql 数据库密码(密码必须符合复杂性要求,包含字母大小写,数字,特赦符号,长度不少于8位)
[root@edenluo.com ~]# mysql -uroot -p'Qf.123com' # 用新密码登录数据库
- 安装8.0
[root@edenluo.com ~]# wget https://repo.mysql.com/mysql80-community-release-el7.rpm
[root@edenluo.com ~]# yum -y install mysql80-community-release-el7.rpm
[root@edenluo.com ~]# yum -y install mysql-community-server mysql
[root@edenluo.com ~]# systemctl start mysqld
[root@edenluo.com ~]# systemctl enable mysqld
[root@edenluo.com ~]# grep 'temporary password' /var/log/mysqld.log
[root@edenluo.com ~]# mysql -u root -p'm32!prp)zf3J'
mysql > alter user 'root'@'localhost' identified by 'Qf.123com';
[root@edenluo.com ~]# mysql -u root -p'Qf.123com
3、重启 MySQL
[root@edenluo.com ~]# systemctl restart mysqld
4、创建 edenluo 库并设置权限
[root@edenluo.com ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.39 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>CREATE DATABASE edenluodb CHARACTER SET utf8 COLLATE utf8_bin;
Query OK, 1 row affected (0.00 sec)
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on edenluodb.* TO 'edenluo'@'localhost' IDENTIFIED BY 'Yangge.123com';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW GRANTS FOR 'edenluo'@'localhost';
+-------------------------------------------------------------------------------------------------------------+
|Grants for edenluo@localhost|
+-------------------------------------------------------------------------------------------------------------+
|GRANT USAGE ON *.* TO 'edenluo'@'localhost' IDENTIFIED BY PASSWORD '*841E9705B9F4BD3195B7314CA58A7E3B3B349F71'|
|---|
+-------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> SHOW GRANTS FOR 'edenluo'@'172.16.0.122';
+----------------------------------------------------------------------------------------------------------------+
|Grants for edenluo@172.16.0.122|
+----------------------------------------------------------------------------------------------------------------+
|GRANT USAGE ON *.* TO 'edenluo'@'172.16.0.122' IDENTIFIED BY PASSWORD '*841E9705B9F4BD3195B7314CA58A7E3B3B349F71'|
|---|
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.01 sec)
mysql> \q
Bye
查看数据库
mysql> show databases;
+--------------------+
|Database|
+--------------------+
|information_schema|
|---|
|performance_schema|
|edenluo|
|sys|
+--------------------+
5 rows in set (0.00 sec)
1、mysql库
MySQL服务的核心数据存储库主要用于管理与维护各类用户信息及其权限配置。该系统不仅负责存储基础数据信息,还提供了一套完整的安全控制功能,能够有效识别并隔离潜在的安全威胁,保障整个数据库系统的安全性。特别地,该系统还支持将慢查询日志或普通查询日志转换为表格形式的数据记录,这些详细的信息也包含在该系统中。
user表:用户全局权限表,记录了每个用户权限
select * from mysql.user where user=‘root’ \G
db表:库级别权限表 (资源权限)
select * from mysql.db where user=‘root’ \G #查询root用户库级别的权限
tables_priv:表级权限
columns_priv:列级别全新表
procs_priv:存储过程与函数权限
proxies_priv:代理用户的权限
event:事件与任务调度表
gtid:与GTID主从复制有关的表
innodb_index_stats:innodb索引统计信息
innodb_table_stats:innodb表统计信息
plugin:插件表
mysql默认的库 mysql默认的几个库
2、performance_schema库
- 用于收集数据库服务器性能数据信息,并全面了解系统运行中的问题所在。
- file_instances: 该工具专门用于生成文件IO操作的相关性能统计数据。
- events: 这一模块负责监控并记录MySQL执行过程中发生的各类事件信息。
- sessions: 该组件则主要用于跟踪当前MySQL系统中活跃的所有会话信息。
3、sys库
- 为应对performance_schema中的复杂信息挑战,在此进行了优化设计。
- sys库是一个经过优化的数据管理工具。
- sys库中的数据全部源自performance_schema。
- 这些视图则显著简化了对performance_schema的查询。
- 从而更便捷地掌握数据库运行状态。
- sys.session用于显示当前MySQL系统的所有活跃会话。
- sys.processlist则列出当前MySQL系统中正在运行的所有进程信息。
- sys.schema_auto_increment_columns用于显示所有具有自增字段的数据库表及其相关信息。
4、information_schema库
也可称为MySQL的数据字典。它存储了全部的元数据信息,并非仅限于数据库、表以及索引等基础元素;此外还包含每个会话相关信息的具体记录。利用该库可执行一些数据资产统计工作:例如总计共有多少个数据库?总共有多少个表?它们总共占据了多大的磁盘空间等信息。值得注意的是该库并未将这些实际的数据内容持久化到硬盘上,并因此也不会自动生成对应的数据目录文件;同时也不允许执行诸如DML操作之类的修改数据库内容的操作
TABLES 表:该系统详细存储了完整的数据字典信息包括这些关键参数如表名表引擎以及相关统计指标如大小和行数等
PROCESSLIST表:记录了会话详细信息,并且运行show processlist命令即为检索该表
INNODB_TRX表:记录了所有事务,包括事务是否被锁
INNODB_LOCK_WAITS:记录了事务正在等待的锁的信息
如果能为伙伴们带来便利,请您持续关注与支持「想吃西红柿」、「云原生运维实战派」这两个品牌账号。我们承诺会为大家带来更多实用的技术分享。
您的支持不仅是对我们工作的认可,更是我们继续前进的最大动力。
