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日

相关文章

  • 在Mariadb中创建数据库-九五小庞

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。  MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Perco…

    MySQL 2023年4月12日
    00
  • 一文带你了解MySQL字符集和比较规则

    一文带你了解MySQL字符集和比较规则 什么是字符集 数据在被存储到数据库中时,要被转换成计算机能够识别的二进制编码。而字符集就是将字符映射为二进制编码的规则集合。MySQL支持多种字符集,如utf8、gbk等。 字符集的作用 字符集决定了数据在存储和传输过程中的编码方式,它直接影响到存储和查询的结果。如果字符集设置不正确,可能会导致数据被储存为乱码或者无法…

    database 2023年5月18日
    00
  • SQL2008中SQL应用之-阻塞(Blocking)应用分析

    SQL Server在处理并发请求时,可能会出现阻塞(Blocking)的情况。阻塞是指,一个事务(Transaction)正在访问某个资源(如表、行、页),而另一个事务需要访问同一资源,但此时资源已被锁定,因此需要等待前一个事务完成后才能访问。在这个过程中,后续的事务被堵塞,无法执行。如果阻塞的时间过长,可能会影响系统的响应性能甚至导致死锁。因此,对阻塞的…

    database 2023年5月21日
    00
  • MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

    当使用MySQL的时候,我们可能会遇到以下错误提示: Expression #N of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xxx’ which is not functionally dependent on columns in GROUP BY…

    database 2023年5月18日
    00
  • Postgresql 赋予用户权限和撤销权限的实例

    下面我将详细讲解如何为PostgreSQL数据库中的用户授予权限和撤销权限,包括两个实例。 一、为用户授权 1. 授权SELECT权限 我们假设需要让名为example_user的用户拥有特定表example_table的SELECT权限。 首先,我们需要以超级用户身份登录到PostgreSQL服务器,在命令行输入以下命令: GRANT SELECT ON …

    database 2023年5月18日
    00
  • Django使用Redis进行缓存详细步骤

    下面我就为大家详细讲解一下Django使用Redis进行缓存的详细步骤,包括以下内容: 1.准备工作 在开始使用Django和Redis之前,先需要做一些准备工作,包括: 1.安装RedisRedis是一个开源内存中的数据结构存储,可以用作缓存、消息中间件和持久化。安装Redis可以到官网上下载相应的安装文件进行安装。 2.安装redis-pyredis-p…

    database 2023年5月22日
    00
  • 网络层访问权限控制技术-ACL详解

    网络层访问权限控制技术-ACL详解 访问控制列表(Access Control Lists,简称 ACL)是网络安全中常用的一项技术。它通过访问控制表实现对网络流量的访问限制,从而保障网络安全。本篇文章将详细讲解ACL技术的基本原理、应用场景和配置过程。 基本原理 ACL技术是在网络层进行的,可以基于源地址、目的地址、协议类型、端口号等信息,来对网络数据进行…

    database 2023年5月22日
    00
  • 升级到mysql-connector-java8.0.27的注意事项

    升级到mysql-connector-java8.0.27需要注意以下事项: 1. 检查应用程序兼容性 在升级之前,需要检查应用程序是否兼容新版本的 mysql-connector-java8.0.27。升级过程中可能会出现一些函数或参数不再支持的情况,可能导致应用程序出错。因此,在升级之前请仔细阅读mysql-connector-java8.0.27的文档…

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