启动问题(如The server quit without updating PID file)请查看最后的附录进行解决

作者:晨星1032

一、MySQL国内镜像下载

二、国内镜像相关站点

只列取部分(其他相关软件可进入站点进行下载)

三、Centos7安装MySQL5.7

1. 下载并解压至/usr/local

镜像站下载(以版本mysql-5.7.31-linux-glibc2.12-x86_64为例)

wget http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

解压至/usr/local

tar -xvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

重命名

cd /usr/local
mv mysql-5.7.31-linux-glibc2.12-x86_64/ mysql

2. 配置信息

新建my.cnf

mkdir -p /usr/local/mysql/etc
vi /usr/local/mysql/etc/my.cnf

在my.cnf中填入以下内容

[mysqld]
user=mysql
server-id=1
port = 3306
character_set_server=utf8mb4 datadir=/mnt/mysql/mysql_data
tmpdir=/mnt/mysql/mysql_tmp # 日志
log-error=/mnt/mysql/log-error.txt default-storage-engine=INNODB join_buffer_size = 512M
tmp_table_size = 1G
max_allowed_packet = 64M
# 365
interactive_timeout = 31536000
# 24.86
wait_timeout = 2147483
read_buffer_size = 128M
read_rnd_buffer_size = 256M
sort_buffer_size = 256M
key_buffer_size=512M
back_log=500
flush_time=0
open_files_limit=4161
table_definition_cache=1400
binlog_row_event_max_size=16M # 最大连接数
max_connections=1000
max_connect_errors = 1000 # 线程缓存大小
thread_cache_size=500 # 日志缓冲刷新的频繁程度
innodb_flush_log_at_trx_commit=2
innodb_buffer_pool_size=2G
innodb_log_file_size=512M
innodb_log_buffer_size=256M
innodb_thread_concurrency=32
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
innodb_lock_wait_timeout = 50 # 瓶颈位
query_cache_size = 0 slow-query-log=1
long_query_time=10 lower_case_table_names=1
table_open_cache=4096 autocommit = 1
skip_name_resolve = 1
transaction_isolation = READ-COMMITTED
explicit_defaults_for_timestamp = 1 # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

注:

  1. my.cnf配置文件的位置在:/usr/local/mysql/etc/

  2. 启动错误日志在:/mnt/mysql/log-error.txt

  3. MySQL的wait_timeout连接已经修改为最大值,不会出现相关超时问题

3. 用户及用户组管理(提高安全)

新建组和用户

groupadd mysql
useradd -g mysql mysql -s /usr/sbin/nologin

创建数据目录(与my.cnf一致)

mkdir -p /mnt/mysql/mysql_data
mkdir -p /mnt/mysql/mysql_tmp

添加权限

chmod 644 /usr/local/mysql/etc/my.cnf
chmod 750 /mnt/mysql/mysql_data
chmod 750 /mnt/mysql/mysql_tmp chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /mnt/mysql/mysql_data
chown -R mysql:mysql /mnt/mysql/mysql_tmp

其他权限设置

touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/log/mariadb/mariadb.log

4. 初始化数据库

进入目录

cd /usr/local/mysql/

初始化数据

./bin/mysqld --initialize

若有错误发生

  1. message:error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

    solution:yum -y install numactl.x86_64

  2. message: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

    solution:yum -y install libaio

5. 启动数据库

启动
/usr/local/mysql/support-files/mysql.server start 停止
/usr/local/mysql/support-files/mysql.server stop 重启
/usr/local/mysql/support-files/mysql.server restart

若启动有错误发生

如:The server quit without updating PID file (/mnt/mysql/mysql_data/xx.pid)

!!首先查看启动错误日志信息:/mnt/mysql/log-error.txt

根据启动日志进行排查问题(直接百度一般都没啥用,切记根据日志进行定点查问题)

以及/var/log/mariadb/mariadb.log的日志

6. 默认密码修改

(1)先停止mysql服务

/usr/local/mysql/support-files/mysql.server stop

# 并查看进程,若有则kill
ps -ef|grep mysqld

​ 结果如图所示

(2)启动 mysql 进入无需授权模式

./bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --skip-grant-tables --console

(3)新开一个窗口,并进入mysql目录下,执行以下命令连上数据库

./bin/mysql

(4)执行相关sql命令

-- 切换库
use mysql;
-- 更新密码为123456
update user set authentication_string=password("123456"),host = '%', password_expired='N' where user="root"; -- 查询结果
select user, authentication_string, host, password_expired from user; FLUSH PRIVILEGES;
exit

7. 防火墙开放端口设置

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

或者直接关闭防火墙(本地推荐)

# 启动
systemctl start firewalld
# 关闭
systemctl stop firewalld
# 查看状态
systemctl status firewalld # 开机禁用
systemctl disable firewalld
# 开机启用
systemctl enable firewalld

作者:晨星1032

附:启动问题排查

如:The server quit without updating PID file (/mnt/mysql/mysql_data/xx.pid)

!!首先查看启动错误日志信息:/mnt/mysql/log-error.txt

  1. 添加日志方法:
# 修改my.cnf配置文件,增加以下内容
log-error=/mnt/mysql/log-error.txt
  1. 同时对以下文件增加权限
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/log/mariadb/mariadb.log

然后根据启动日志进行排查问题(直接百度一般都没啥用,切记根据日志进行定点查问题)

或者/var/log/mariadb/mariadb.log的日志

若仍解决不了,可根据本文过程重新安装

重装MySQL过程数据库迁移注意点以及数据恢复,请看下篇内容!

MySQL下载地址与Centos7安装MySQL以及启动问题排查的更多相关文章

  1. linux mysql下载地址

    linux mysql下载地址: https://dev.mysql.com/downloads/mysql/5.7.html#downloads

  2. CentOS7安装MYSQL。

    参考这个文章(网页已存到本地):http://www.cnblogs.com/starof/p/4680083.html 安装完成后,本地登录MYSQL没有问题. 现在主要是在windows下用ora ...

  3. yum CentOS7安装mysql

    配置阿里云yum源 [root@bogon ~]# cd /etc/yum.repos.d/ [root@bogon yum.repos.d]# mkdir repo_bak [root@bogon ...

  4. [CentOs7]安装mysql(2)

    摘要 之前安装过一次mysql,最后配置,发现在本地无法连接,重启服务的时候一直卡在那里不动,感觉是安装的过程出问题,最后没办法还是卸载了,然后重新安装一下. [CentOs7]安装mysql Mys ...

  5. centos7安装mysql(yum)

    centos7安装mysql(yum) ----安装环境----依赖安装----检查mysql是否已安装----安装----验证是否添加成功----选择要启用的mysql版本----通过Yum安装my ...

  6. centos7安装Mysql爬坑记录

    centos7安装Mysql爬坑记录   查看是否已安装 使用下列命令查看是否已经安装过mysql/mariadb/PostgreSQL 如果未安装,不返回任何结果(ECS的centos镜像默认未安装 ...

  7. CentOS7 安装 MySQL Cluster 7.6.7

    引用自:http://lemonlone.com/posts/mysql-ndb-cluster-install/ 仅做备份和配置文件更改 1.先在VMware中安装 CentOS-7-x86_64- ...

  8. Centos7 安装mysql服务器并开启远程访问功能

    大二的暑假,波波老师送了一个华为云的服务器给我作测试用,这是我程序员生涯里第一次以root身份拥有一台真实的云服务器 而之前学习的linux知识在这时也派上了用场,自己的物理机用的是ubuntu系统, ...

  9. CentOS7安装mysql提示“No package mysql-server available.”

    针对centos7安装mysql,提示"No package mysql-server available."错误,解决方法如下: Centos 7 comes with Mari ...

随机推荐

  1. jQuery EasyUI学习二

    1.   课程介绍 1.  Datagrid组件(掌握) 2.  Dialog.form组件(掌握) 3. Layout.Tabs;(掌握) Datagrid组件 2.1.  部署运行pss启动无错 ...

  2. 使用 SOS 对 Linux 中运行的 .NET Core 进行问题诊断

    目录 说明 准备一个方便的学习环境 2.x 配置内容 3.x 配置内容 工具介绍 lldb sos plugin 1. attach 到进程上进行调试 2. 分析core dump文件 SOS 案例分 ...

  3. Openwrt_Linux_crontab任务_顺序执行脚本

    Openwrt_Linux_crontab任务_顺序执行脚本 转载注明来源: 本文链接 来自osnosn的博客,写于 2020-12-21. Linux (openwrt,debian,centos. ...

  4. netty服务端客户端启动流程分析

    服务端启动流程 我们回顾前面讲解的netty启动流程,服务端这边有两个EventLoopGroup,一个专门用来处理连接,一个用来处理后续的io事件 服务端启动还是跟nio一样,绑定端口进行监听,我们 ...

  5. 你还不知道mysql中空值和null值的区别吗?

    前言 最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值.以下带来示例给大家进行讲解. 建表 create table tes ...

  6. 计算机考研复试真题 a+b(大数加法)

    题目描述 实现一个加法器,使其能够输出a+b的值. 输入描述: 输入包括两个数a和b,其中a和b的位数不超过1000位. 输出描述: 可能有多组测试数据,对于每组数据, 输出a+b的值. 示例1 输入 ...

  7. LeetCode220 存在重复元素 III

    给定一个整数数组,判断数组中是否有两个不同的索引 i 和 j,使得 nums [i] 和 nums [j] 的差的绝对值最大为 t,并且 i 和 j 之间的差的绝对值最大为 ķ. 示例 1: 输入: ...

  8. mysql 需要内核级线程的支持,而不只是用户级线程,这样才能够有效的使用多个cpu

    mysql 需要内核级线程的支持,而不只是用户级线程,这样才能够有效的使用多个cpu

  9. 【ORA】ORA-00257 archiver error. 错误的处理方法

    今天连接数据库,结果报错,ora-00257查看 [oracle@exam oracle]$ oerr ora 00257 00257, 00000, "archiver error. Co ...

  10. 记一次centos7重启后docker无法启动的问题

    问题描述 在重新了centos7系统后,docker突然就启动不了了,查看报错信息 [root@localhost ~]# systemctl status docker.service ● dock ...