CentOS 下 MySQL 服务搭建

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本篇内容记录了有关 MySQL 服务搭建的相关操作。

1. 卸载旧 MySQL


  • 查看 rpm 包


rpm-qa | grep mysql


如果存在,使用如下命令卸载


rpm -e


  • 查找是否存在mysql 相关目录


find / -name mysql


  • 卸载系统自带 mariadb


[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost ~]# rm -rf /etc/my.cnf


2. 创建 mysql 用户和组


  • 检查有无创建过 mysql 用户组,如果没有创建


# 检查mysql 用户组是否存在
[root@localhost ~]# cat /etc/group | grep mysql
[root@localhost ~]# cat /etc/passwd | grep mysql
# 创建mysql 用户组和用户
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql


3. 安装 MySQL


  • 下载


从官网下载 MySQL


https://dev.mysql.com/downloads/mysql/


使用如下命令下载 MySQL


wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz


  • 安装


下载下来是一个gz的压缩包,使用如下命令解压


tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz


将解压的文件重命名,并移动到/usr/local目录


mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql5.7


更改 mysql5.7 目录下所有文件夹所属的用户、用户组、以及权限


chown -R mysql:mysql /usr/local/mysql5.7
chmod -R 755 /usr/local/mysql5.7
  • 创建 MySQL 相关目录


mkdir -p /usr/local/mysql5.7/{data,logs,tmp}
# 更改文件夹所属
chown -R mysql.mysql /usr/local/mysql5.7/data
chown -R mysql.mysql /usr/local/mysql5.7/logs
chown -R mysql.mysql /usr/local/mysql5.7/tmp
  • 创建 MySQL 配置文件 my.cnf


简单模板如下


[client]
port = 3306
socket = /usr/local/mysql5.7/tmp/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql5.7
datadir = /usr/local/mysql5.7/data
port = 3306
socket = /usr/local/mysql5.7/tmp/mysql.sock
pid-file = /usr/local/mysql5.7/tmp/mysqld.pid
tmpdir = /usr/local/mysql5.7/tmp
skip_name_resolve = 1
symbolic-links=0
max_connections = 2000
group_concat_max_len = 1024000
sql_mode = NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names = 1
log_timestamps=SYSTEM
character-set-server = utf8
interactive_timeout = 1800
wait_timeout = 1800
max_allowed_packet = 32M
binlog_cache_size = 4M
sort_buffer_size = 2M
read_buffer_size = 4M
join_buffer_size = 4M
tmp_table_size = 96M
max_heap_table_size = 96M
max_length_for_sort_data = 8096
#logs
server-id = 1003306
log-error = /usr/local/mysql5.7/logs/error.log
slow_query_log = 1
slow_query_log_file = /usr/local/mysql5.7/logs/slow.log
long_query_time = 3
log-bin = /usr/local/mysql5.7/logs/binlog
binlog_format = row
expire_logs_days = 15
log_bin_trust_function_creators = 1
relay-log = /usr/local/mysql5.7/logs/relay-bin
relay-log-recovery = 1
relay_log_purge = 1
#innodb
innodb_file_per_table = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_neighbors = 0
innodb_flush_method = O_DIRECT
innodb_autoinc_lock_mode = 2
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_buffer_pool_size = 2G


  • 配置 mysql.server


cd /usr/local/mysql5.7/support-files
cp mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
# 修改目录位置
basedir=/usr/local/mysql5.7
datadir=/usr/local/mysql5.7/data
# 注册开机启动服务
chkconfig --add mysql
chkconfig --list


  • 添加 mysql 到环境变量


/usr/local/mysql5.7/bin添加到PATH环境变量中

添加的内容export PATH=$PATH:/usr/local/mysql5.7/bin


vi /etc/profile
source /etc/profile
  • 初始化 mysql


[root@localhost ~]# /usr/local/mysql5.7/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql5.7 --datadir=/usr/local/mysql5.7/data
# 临时密码保存在 errlog 中;获取临时密码
[root@localhost ~]# more /usr/local/mysql5.7/logs/error.log | grep password
2022-04-07T23:28:28.894994+08:00 1 [Note] A temporary password is generated for root@localhost: w(fYri(tk8Dj


  • 启动 mysql 服务,并修改root用户密码


# 启动mysql服务
[root@localhost ~]# service mysql start
Starting MySQL... SUCCESS!
# 使用初始密码登录mysql服务 并修改密码
[root@localhost ~]# mysql -uroot -p
alter user 'root'@'localhost' identified by 'root';
flush privileges;


微信图片_20220504123634.png


为了方便使用,可以创建软链接


ln -s /usr/local/mysql5.7/bin/mysql /usr/bin/mysql


4. 附:常用命令与开启远程连接


  • 启动


service mysql start


  • 关闭


service mysql stop


  • 重启


service mysql restart


  • 开启远程连接


进入 MySQL 服务


mysql -u root -proot


操作 mysql 库


mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select user, host from user;
+---------------+-----------+
| user         | host     |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys     | localhost |
| root         | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql>


host 字段中,localhost 表示只允许本机访问;要实现远程连接,可以将 root 用户的 hos t改为 %,% 表示允许任意 host 访问;如果需要设置只允许特定 ip 访问,则应改为对应的 ip。


修改 root 用户的 host 字段


update user set host='%' where user='root';
flush privileges;

让 root 用户可以远程连接,存在安全风险;可以采用如下方案:创建独立的用户。


GRANT ALL PRIVILEGES ON *.* TO 'deployop'@'%' IDENTIFIED BY 'deployop' WITH GRANT OPTION;


第一个 deployop 表示用户名,% 表示所有的电脑都可以连接;也可以设置某个 ip 地址运行连接。第二个 deployop 表示密码。


再次select user, host from user;可查看到 deployop 用户的 host 是 % ;代表任何 ip 都可以连接。然后使用flush privileges;语句立即生效。


如果还是连接不上,就有可能是防火墙的问题。添加 3306 端口防火墙策略,重启防火墙。


微信图片_20220504123642.png

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
20天前
|
安全 关系型数据库 MySQL
Linux(CentOS6)安装MySQL5.6
Linux(CentOS 6)系统上安装MySQL 5.6版本的详细步骤,包括准备数据存放目录、创建用户、下载安装包、初始化数据库、配置服务脚本、设置环境变量等操作。
55 1
|
24天前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
12天前
|
弹性计算 关系型数据库 MySQL
centos7 mysql安装及配置
本文详细介绍了在阿里云服务器ECS上通过yum源安装MySQL 8.0.12的过程,包括更新yum源、下载并安装MySQL源、解决安装过程中可能遇到的问题等步骤。此外,还介绍了如何启动MySQL服务、设置开机自启、配置登录密码、添加远程登录用户以及处理远程连接异常等问题。适合初学者参考,帮助快速搭建MySQL环境。
86 8
centos7 mysql安装及配置
|
9天前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
47 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
9天前
|
Linux
CentOS 7.x时间同步服务chrony配置详解
文章详细介绍了在CentOS 7.x系统中如何安装和配置chrony服务,以及它与ntpd服务的对比,强调了chrony在时间同步方面的高效性和准确性。
26 1
CentOS 7.x时间同步服务chrony配置详解
|
20天前
|
关系型数据库 MySQL Linux
Linux(CentOS7)搭建LAMP服务环境
本文介绍了在Linux (CentOS 7) 上搭建LAMP服务环境的详细步骤,包括安装Apache HTTPd、解决编译时依赖问题、配置Apache服务、安装PHP以及处理PHP与Apache集成时遇到的问题。同时,还涉及了防火墙设置和SELinux权限调整,确保Web服务能够正常运行。
41 2
|
18天前
|
关系型数据库 MySQL Java
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
【Azure 应用服务】App Service 无法连接到Azure MySQL服务,报错:com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
126 0
|
21天前
|
Kubernetes 关系型数据库 MySQL
k8s练习--通过NFS+PV+PVC+POD,部署一个MySQL服务,并将MySQL的数据进行持久化存储
本文档介绍了如何使用Kubernetes (K8s)、NFS、PersistentVolume (PV)、PersistentVolumeClaim (PVC)和Pod来部署并实现MySQL服务的数据持久化存储。Kubernetes是一个用于自动化部署、扩展和管理容器化应用的强大平台。NFS作为一种网络文件系统协议,能够使Kubernetes集群中的Pod跨节点访问共享文件。PV和PVC机制则提供了持久化的存储解决方案,确保数据即使在Pod生命周期结束后仍得以保留。
|
24天前
|
SQL Oracle 关系型数据库
实时计算 Flink版产品使用问题之连接到MySQL的从库时遇到其他服务也连接到了从库,该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
14天前
|
消息中间件 Linux API
centos7 安装rabbitmq自定义版本及配置
centos7 安装rabbitmq自定义版本及配置

热门文章

最新文章