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;

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

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 服务搭建的更多相关文章

  1. CentOS 下 MySQL DateBasic 抢救

    CentOS 下 MySQL DateBasic 抢救 强 Kill 数据库进程. 分析问题:确定报错内容 报错信息:The server quit without updating PID file ...

  2. CentOS下Mysql安装教程

    CentOS下Mysql安装教程 本人学习Linux时使用的是CentOs5.5版本,在该环境中,Mysql的安装方法有很多种,下面我只讲我这次成功了的方法,作为一个记录,供大家参考,同时给自己做一个 ...

  3. CentOS 下 MySQL 5.6 基于 RPM 的下载、安装、配置

    CentOS 下 MySQL 5.6 基于 RPM 的下载.安装.配置 系统: CentOS 7 x86_64 MySQL 版本: 5.6.40 安装方式: RPM 下载 下载地址 操作系统 选择 R ...

  4. CentOS下TFTP服务安装

    CentOS下TFTP服务安装 今天和同学做交换机恢复DCN操作系统的任务,然后需要用到tftp,然后就开始研究.这里对TFTP服务进行介绍以及安装. tftp 比 ftp 更易于管理 tftp 比 ...

  5. CentOS下MySQL 5.7编译安装

    CentOS下MySQL 5.7编译安装   文章目录 安装依赖包 下载相应源码包 添加mysql用户 预编译 编译安装 启动脚本,设置开机自启动 /etc/my.cnf,仅供参考 初始化数据库 设置 ...

  6. CentOS 下mysql ERROR&n…

    CentOS 下mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) 描述:在操作数据库时会出 ...

  7. CentOS下SVN服务的启动与关闭

    CentOS下SVN服务的启动与关闭 操作系统:CentOS 6.5  SVN版本:1.8.11 启动SVN服务:  svnserve -d -r /home/svn /home/svn 为版本库的根 ...

  8. 破解windows下MySQL服务启动不了的情况下不能对其进行全然卸载的解决方式

    下面的文章主要介绍的是在MySQL服务启动不了的情况下,不能对其进行全然卸载的实际解决的方法的描写叙述,下面就是对解决MySQL服务启动不了的情况下详细方案的描写叙述,希望在你今后的学习中会对你有所帮 ...

  9. CentOS下mysql常用命令

    CentOS下mysql常用命令   1.开启和关闭 1.1.开启 service mysql start 1.2.关闭 service mysql stop 1.3.重启 service mysql ...

随机推荐

  1. 数据库篇:mysql日志类型之 redo、undo、binlog

    前言 可以说mysql的多数特性都是围绕日志文件实现,而其中最重要的有以下三种 redo 日志 undo 日志 binlog 日志 关注公众号,一起交流:微信搜一搜: 潜行前行 1 redo日志 in ...

  2. Rust-Sqlx极简教程

    简介 sqlx 是 rust 中的一个数据库访问工具.具有以下特点: 异步:原生就支持异步,在并发性高的场合能够得到更好的支持 编译时检查查询:sqlx可以在 cargo build 的时候检查执行s ...

  3. vue3.0的更新和defineProperty优化?

    放弃 Object.defineProperty ,使用更快的原生 Proxy (访问对象拦截器, 也成代理器) 提速, 降低内存使用, Tree-shaking更友好 支持IE11等 使用Types ...

  4. rabbitmq 中 vhost 的作用是什么?

    vhost本质上是一个mini版的RabbitMQ服务器,拥有自己的队列.绑定.交换器和权限控制: vhost通过在各个实例间提供逻辑上分离,允许你为不同应用程序安全保密地运行数据: vhost是AM ...

  5. UML 中有哪些常用的图?

    UML 定义了多种图形化的符号来描述软件系统部分或全部的静态结构和动态结 构,包括:用例图(use case diagram).类图(class diagram).时序图(sequence diagr ...

  6. springBoot集成Elasticsearch抛出Factory method 'restHighLevelClient' threw exception; nested exception is java.lang.NoSuchFieldError: IGNORE_DEPRECATIONS

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restHighLeve ...

  7. Linux 中进程有哪几种状态?在 ps 显示出来的信息中, 分别用什么符号表示的?

    1.不可中断状态:进程处于睡眠状态,但是此刻进程是不可中断的.不可中断, 指进程不响应异步信号. 第 441 页 共 485 页2.暂停状态/跟踪状态:向进程发送一个 SIGSTOP 信号,它就会因响 ...

  8. 决策树算法一:hunt算法,信息增益(ID3)

    决策树入门 决策树是分类算法中最重要的算法,重点 决策树算法在电信营业中怎么工作? 这个工人也是流失的,在外网转移比处虽然没有特征来判断,但是在此节点处流失率有三个分支概率更大 为什么叫决策树? 因为 ...

  9. Vue中获取元素宽高

    <div ref="init"></div> 写在 页面 方法 部分 这里的 offsetHeight 是返回元素的宽度(包括元素宽度.内边距和边框,不包括 ...

  10. 前端进阶(8) - 前端开发需要了解的工具集合:webpack, eslint, prettier, ...

    前端开发需要了解的工具集合:webpack, eslint, prettier, ... 前端开发需要了解的一些工具,这些工具能够帮助你在项目开发中事半功倍. 1. nrm: npm registry ...