Centos7下安装和配置MySQL5.7.20的详细教程

下面是详细的“Centos7下安装和配置MySQL5.7.20的详细教程”。

1. 安装MySQL

1.1 下载MySQL软件包

从MySQL官方网站下载MySQL 5.7.20的版本压缩包,下载地址为 https://dev.mysql.com/downloads/mysql/5.7.html 。

建议下载“Generic Linux (Architecture Independent), Compressed TAR Archive”版本,该版本可在绝大多数Linux发行版下使用。

1.2 解压MySQL软件包

下载后解压缩MySQL压缩包到指定目录,例如:

tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

解压后将得到一个名为mysql-5.7.20-linux-glibc2.12-x86_64的文件夹。

1.3 创建MySQL数据目录和日志文件

MySQL需要一个数据目录和几个日志文件来工作。在安装前,需要创建这些必要的目录,例如:

mkdir -p /data/mysql/data
mkdir -p /usr/local/mysql/log
touch /usr/local/mysql/log/mysql_error.log

1.4 创建MySQL用户和用户组

创建MySQL用户和用户组,例如:

groupadd mysql
useradd -g mysql mysql

1.5 初始化MySQL

在解压后的MySQL目录下,进行初始化操作,例如:

cd /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.20-linux-glibc2.12-x86_64 --datadir=/data/mysql/data

这个过程会生成一个随机密码,该密码可以在日志文件/usr/local/mysql/log/mysql_error.log中查看。

1.6 启动MySQL

通过命令启动MySQL服务,例如:

./bin/mysqld_safe --user=mysql &

1.7 设置MySQL密码

MySQL初始化完成后,需要修改超级管理员root的密码,例如:

./bin/mysql -uroot -p
Enter password:

接着执行以下SQL语句来设置密码:

UPDATE mysql.user SET Password=PASSWORD('newpassword') WHERE User='root';
FLUSH PRIVILEGES;

其中newpassword为新密码,可根据实际情况修改。

至此,MySQL安装和初始化完成。

2. 配置MySQL

2.1 配置MySQL字符集

打开MySQL配置文件/etc/my.cnf,将[mysqld][client]两个段下的default-character-set参数设置为utf8mb4,例如:

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

[client]
default-character-set=utf8mb4

保存并退出,重启MySQL服务。

示例:

sudo vi /etc/my.cnf # 进入vi编辑器
# 在[mysqld]和[client]下添加如上内容
:wq # 保存并退出
sudo systemctl restart mysqld # 重启MySQL服务

2.2 配置MySQL远程连接

默认情况下,MySQL只允许本地连接。若需要进行远程连接,则需要在MySQL配置文件中/etc/my.cnf添加以下内容:

[mysqld]
bind-address=0.0.0.0

在MySQL服务中启用远程访问,可以使用以下SQL语句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

其中password为对应的root用户的密码。

示例:

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 在[mysqld]段下添加 bind-address=0.0.0.0
:wq # 保存并退出
sudo mysql -uroot -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;

至此,MySQL的配置完成。

示例

示例1:创建一个新用户并授予全部权限

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

其中newuser为要新建的用户名,password为该用户的密码。

示例2:创建一个新的数据库

登录MySQL后执行以下SQL语句来创建一个新的数据库:

CREATE DATABASE newdatabase;

其中newdatabase为数据库的名称。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Centos7下安装和配置MySQL5.7.20的详细教程 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • php在linux环境中如何使用redis详解

    PHP在Linux环境中如何使用Redis 1. 安装Redis扩展 在Linux环境下启用Redis扩展需要使用PECL来安装。假设你已经安装了PHP和Redis服务器,请按照以下步骤: 安装PECL和PHP开发包 sudo apt-get install php-pear php-dev 安装Redis扩展 sudo pecl install redis…

    database 2023年5月22日
    00
  • GO实现Redis:GO实现内存数据库(3)

    实现Redis的database层(核心层:处理命令并返回) https://github.com/csgopher/go-redis datastruct/dict/dict.go type Consumer func(key string, val interface{}) bool type Dict interface { Get(key strin…

    Redis 2023年4月10日
    00
  • master数据库损坏的解决办法有哪些

    如何解决master数据库损坏的问题? 这是很多开发者和运维人员在面对SQL Server报错: “无法打开服务器’hostname\instance’所请求的数据库master。登陆失败。”时,常常会碰到的问题。下面,我们将详细讲解master数据库损坏的解决办法。 什么是master数据库 master数据库是SQL Server系统数据库之一,存储有关…

    database 2023年5月21日
    00
  • PHP实现负载均衡session共享redis缓存操作示例

    我来详细讲解一下“PHP实现负载均衡session共享redis缓存操作示例”的完整攻略。 什么是负载均衡以及为什么要使用Redis缓存操作? 负载均衡是指将工作任务分配给多个计算机或其他资源,以达到更高的性能、更好的可扩展性和更高的可用性。在Web应用程序中,负载均衡是确保应用程序可以处理高流量时保持稳定和可靠的关键。 当我们的Web应用程序在多个服务器上…

    database 2023年5月22日
    00
  • Redis高可用配置(Keepalived)

    主:172.16.0.104 备:172.16.0.105 VIP:172.16.0.107 客户端直接连VIP,当master 104的redis挂掉后,105作为master。当104重启后,104作为105的slave。当105又挂掉之后,104作为master…… 1、安装redis并配置主从同步      安装过程省略     1.1 配置…

    Redis 2023年4月13日
    00
  • Linux系统中MySQL的常用操作命令

    下面是对Linux系统中MySQL的常用操作命令的详细攻略: 登录MySQL 要操作MySQL之前,需要先登录到MySQL。可以通过以下命令登录到MySQL: mysql -u username -p 其中,username是你在MySQL中的用户名。运行该命令后,会提示你输入该用户的密码。 若要退出MySQL,请在mysql>提示符下运行以下命令: …

    database 2023年5月22日
    00
  • SELECT INTO 和 INSERT INTO SELECT 两种表复制语句简单介绍

    SELECT INTO 和 INSERT INTO SELECT 都是将一个表的内容复制到另一个表的常用 SQL 语句。二者的语法差异和应用场景略有不同。 SELECT INTO SELECT INTO 语句用于创建新的表并将数据从一个数据源中插入到新表中。语法如下: SELECT column1, column2, … INTO new_table F…

    database 2023年5月22日
    00
  • mysql中索引与FROM_UNIXTIME的问题

    问题描述: 在MySQL中,如果在表中添加了时间列,可以使用FROM_UNIXTIME函数将UNIX时间戳转换为日期格式,但是在加入索引的时候,会遇到一些问题。 解决方案: 为了优化查询速度,我们通常会在表中加入索引。但是,当我们在表中添加时间列,并使用FROM_UNIXTIME函数将UNIX时间戳转换为日期格式时,索引的效率会受到影响。 原因是,MySQL…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部