MySQL【部署 01】Linux root 用户部署 mysql-5.7.28 及 not allowed to connect to this MySQL server 和中文乱码问题处理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL【部署 01】Linux root 用户部署 mysql-5.7.28 及 not allowed to connect to this MySQL server 和中文乱码问题处理

云盘资源:mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

链接:https://pan.baidu.com/s/1DmavSo3kCKOPZtmd-FE8mw 
提取码:0v5l



说明:

一下安装过程是针对 mysql-5.7.28-linux-glibc2.12-x86_64 版本的,不同版本的安装会有差异。

安装环境:

[root@tcloud ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

安装

1.准备

  1. 查看是否有安装mariadb(如果有就卸载掉,否则可能出现冲突)
# 查看
yum list installed | grep mariadb
# 删除
yum remove mariadb-libs.x86_64
  1. 安装 numactl
# 安装
yum -y install numactl

否则会报错bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

2.上传解压文件

tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 
mv mysql-5.7.28-linux-glibc2.12-x86_64 /usr/local/mysql

3.创建数据目录

mkdir -p /data/mysql/data

4.添加mysql用户及用户组【MySQL不能以root用户使用】

groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql

5.更改所属的组和用户

cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
chown -R mysql /data/mysql

6.安装初始化

初始化后会有默认密码,一定要复制下来。注意初始化过程中的日志信息:A temporary password is generated for root@localhost: +oUisNmwk6:e

cd /usr/local/mysql
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
2021-03-30T10:18:25.212584Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-03-30T10:18:26.237192Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-03-30T10:18:26.356956Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-03-30T10:18:26.459079Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 43fe917f-9141-11eb-a515-00163e3019ff.
2021-03-30T10:18:26.460035Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-03-30T10:18:27.546222Z 0 [Warning] CA certificate ca.pem is self signed.
2021-03-30T10:18:28.087215Z 1 [Note] A temporary password is generated for root@localhost: +oUisNmwk6:e

7.修改 mysql 配置文件及开机启动

# 修改文件
vi /usr/local/mysql/support-files/mysql.server
# 修改内容
basedir=/usr/local/mysql
datadir=/data/mysql/data
# 复制配置文件【设置开机启动】
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

8.修改 my.cnf 文件

lower_case_table_names=1 表名称忽略大小写,Windows系统性默认是1,Linux系统下默认是0,如果不配置此项,在 Windows环境下正常的查询有可能会报错。

vi /etc/my.cnf
# 配置文件内容
[mysqld]
character-set-server=utf8 
port = 3306
basedir=/usr/local/mysql
datadir=/data/mysql/data
max_connections=200
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=64M
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

【中文乱码问题】

my.cnf 需要添加一下设置,character-set-server=utf8 的设置要放在最上边,否则 character-set-server 配置无效。

[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

【经验教训分享】

表名称忽略大小写 lower_case_table_names=1 这个设置在Windows环境下默认就是1,而在Linux环境下默认却是0,有一次部署好MySQL之后,项目运行异常,报的是表不存在,原因是SQL语句里的表名称有大写的【你说要不要泪奔,写代码太不规范了】。

解决: 我查看MySQL的配置是有lower_case_table_names=1的,为什么没有起效呢?原因在于 my.cnf 创建的时候在 root 用户下,把配置文件改到 MySQL用户下就可以解决失效问题了。

9.启动并登录mysql

使用临时密码进行登录。

# 启动
/etc/init.d/mysqld start
# 启动信息
Starting MySQL.Logging to '/data/mysql/data/tcloud.err'.
 SUCCESS!
# 登录数据库
/usr/local/mysql/bin/mysql -u root -p'+oUisNmwk6:e'

10.修改root用户密码

set password=password('aliyun@2021');
-- 解决Navicat无法连接的问题
grant all privileges on *.* to root@'%' identified by 'aliyun@2021';
flush privileges;
quit;

11.将 MySQL 加入 Service 系统服务

# 配置环境变量
vi /etc/profile
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
. /etc/profile
chkconfig --add mysqld
chkconfig mysqld on 
service mysqld restart 
service mysqld status
# 查看端口号
netstat -lntup|grep 3306
# mysql后台启动
bin/mysqld_safe --defaults-file=/etc/my.cnf  --user=root &

内容更新

  • 2023-05-25 更新安装顺序及备注
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
2月前
|
NoSQL 关系型数据库 Linux
ERPNext 搭建教程:Linux 一键部署与维护
ERPNext 是一款开源免费的企业资源计划系统,适用于中小企业信息化管理。基于 Python 和 Frappe 框架开发,支持财务、销售、人力、库存等模块,具备高度可定制性。本文介绍如何通过 Websoft9 在 Linux 下快速部署 ERPNext,并提供环境配置、系统维护等实用建议,适合开发者和企业用户快速上手。
400 7
ERPNext 搭建教程:Linux 一键部署与维护
|
4月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
1395 57
|
2月前
|
Java Linux 网络安全
Linux云端服务器上部署Spring Boot应用的教程。
此流程涉及Linux命令行操作、系统服务管理及网络安全知识,需要管理员权限以进行配置和服务管理。务必在一个测试环境中验证所有步骤,确保一切配置正确无误后,再将应用部署到生产环境中。也可以使用如Ansible、Chef等配置管理工具来自动化部署过程,提升效率和可靠性。
321 13
|
2月前
|
关系型数据库 Linux Nacos
Rocky Linux 部署 Docker 和 NACOS 实例
本文介绍在阿里云环境下基于 Rocky Linux 搭建 Docker 并部署 Nacos 的完整流程。涵盖 Docker 安装、镜像加速配置、网络设置及 MySQL 与 Nacos 容器的创建,适用于开发与生产环境。
444 0
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
395 17
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
120 18
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
350 11
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
134 10
|
27天前
|
安全 关系型数据库 MySQL
MySQL安全最佳实践:保护你的数据库
本文深入探讨了MySQL数据库的安全防护体系,涵盖认证安全、访问控制、网络安全、数据加密、审计监控、备份恢复、操作系统安全、应急响应等多个方面。通过具体配置示例,为企业提供了一套全面的安全实践方案,帮助强化数据库安全,防止数据泄露和未授权访问,保障企业数据资产安全。