云盘资源: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.准备
- 查看是否有安装mariadb(如果有就卸载掉,否则可能出现冲突)
# 查看 yum list installed | grep mariadb # 删除 yum remove mariadb-libs.x86_64
- 安装 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 更新安装顺序及备注