首页 > 数据库 >CentOS 下 MySQL 服务搭建

CentOS 下 MySQL 服务搭建

时间:2023-06-02 11:34:34浏览次数:48  
标签:CentOS root mysql5.7 MySQL usr mysql local localhost 搭建


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;

CentOS 下 MySQL 服务搭建_数据库

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

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 端口防火墙策略,重启防火墙。

CentOS 下 MySQL 服务搭建_mysql_02

标签:CentOS,root,mysql5.7,MySQL,usr,mysql,local,localhost,搭建
From: https://blog.51cto.com/u_13538361/6401066

相关文章

  • GitLab 服务搭建
    1.GitLab概述GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。GitLab产品将分为三个发行版本CE(社区版):发行版将继续在全球范围内提供EE(企业版):发行版仅在中国境外出售JH(JiHu版):发行版仅在中国销售GitLab的架构图(来源官网:http......
  • 制品库 Jfrog Artifactory 搭建私服
    1.JfrogArtifactory概述JFrogArtifactory功能最强大的二进制制品仓库。在Google、Apple、思科、甲骨文、华为、腾讯等众多世界500强公司中都有大规模使用,在二进制软件制品管理领域处于绝对领先地位。与其他服务不同,JJFrogArtifactory在版本发行上分类较多且杂。https://www......
  • CentOS 7安装部署咖啡壶 chemex 开源资产管理系统
    一、简介    咖啡壶chemex是一款开源、高颜值的IT资产管理平台。资产管理、归属、追溯、盘点以及轻量的服务器状态面板。支持导出导入、LDAP、自定义字段等。    由于公司目前暂时没有资产管理系统平台,公司的网络设备类资产都是通过Excel表格来进行统计和维护,整个过程全靠......
  • 存储引擎的概念及作用,玩转MySQL
    前言从今天开始,就带各位小伙伴学习数据库技术。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深,全面讲解数据库体系。非常适合零基础的小伙伴来学习。全文大约【1567】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带......
  • Mysql:优化数据库结构
    冷热拆分表本同一张表的数据,有些字段用得多,有些用些用得少。在数据量大的情况下,可以将热数据单独一张,冷数据单独一张。典型的是用户基础信息表和用户详细信息表增加冗余字段学生表关联课程表,需要展示课程的简介和名称。可以考虑把这两个字段冗余到学生表里增加非空约束在业务......
  • centos7时间同步(ntp)
    root用户登录1、安装ntpyuminstallntp2、修改ntp.confvim/etc/ntp.confserverntp1.aliyun.compreferserverntp2.aliyun.com3、设置时区timedatectlset-timezoneAsia/Shanghai4、时间同步ntpdatentp1.aliyun.com5、启动NTP服务servicentpdstart6、设......
  • linux | CentOS 发送邮件附件
    如图:  配置内容[email protected][email protected]=授权码#在邮箱后台申请setsmtp-auth=login 发送内容:#格式:echo邮件正文mail-s"邮件标题"-a附件地址收件邮箱echohelloword!m......
  • MySQL之视图,索引,存储过程,触发器--实操
    一.视图什么是视图?视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含系列带有名称的列和行数据。行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由select结果组成的表。视图的出现其实优化了MySQL对用户权限的管理,我们在以......
  • Centos上配置服务开机自启动的3种方式
    前言  在服务器上安装的各种中间件,为了防止意外宕机重启导致的后果,一般都需要配置成开机自启动。但是有些中间件的安装过程中并没有提供相关配置开机自启动的说明文档。今天和各位大朋友们聊一聊Centos上配置服务开机自启动的几种方式。Centos下配置服务开机自启动有3种方式:......
  • Mysql训练营笔记
    Mysql架构与内部模块演示环境:MySQL5.7存储引擎:InnoDB一、一条查询SQL是如何执行的?  程序或者工具要操作数据库,第一步跟数据库建立连接。1、通信协议首先,MySQL必须要运行一个服务,监听默认的端口(3306)。通信协议MySQL支持多种通信协议。第一个就是TCP/IP协议,编......