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,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 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 更新安装顺序及备注
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
16天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
11天前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
54 8
|
15天前
|
Ubuntu 网络协议 Linux
快速部署WSL(Windows Subsystem for Linux)
WSL提供了一种轻量级的方法,使开发者能够在Windows上无缝运行Linux环境。通过本文介绍的步骤,可以快速安装、配置和使用WSL,以满足开发和测试的需求。
63 8
|
16天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
146 7
|
1月前
|
关系型数据库 MySQL Linux
MySQL数据库下载安装教程(Windows&Linux)
本文档详细介绍了MySQL的安装步骤,包括安装前的准备工作、下载安装包、Windows和Linux系统下的具体安装流程,以及如何配置MySQL服务、设置环境变量、启动服务和连接数据库等关键操作。
|
2月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
158 3
|
2月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
74 3
|
2月前
|
关系型数据库 MySQL Linux
Linux系统如何设置自启动服务在MySQL数据库启动后执行?
【10月更文挑战第25天】Linux系统如何设置自启动服务在MySQL数据库启动后执行?
154 3
|
2月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
89 2
|
2月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
63 3
下一篇
开通oss服务