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

作者:晨星1032

一、MySQL国内镜像下载

二、国内镜像相关站点

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

三、Centos7安装MySQL5.7

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

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

  1. 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

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

重命名

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

2. 配置信息

新建my.cnf

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

在my.cnf中填入以下内容

  1. [mysqld]
  2. user=mysql
  3. server-id=1
  4. port = 3306
  5. character_set_server=utf8mb4
  6. datadir=/mnt/mysql/mysql_data
  7. tmpdir=/mnt/mysql/mysql_tmp
  8. # 日志
  9. log-error=/mnt/mysql/log-error.txt
  10. default-storage-engine=INNODB
  11. join_buffer_size = 512M
  12. tmp_table_size = 1G
  13. max_allowed_packet = 64M
  14. # 365
  15. interactive_timeout = 31536000
  16. # 24.86
  17. wait_timeout = 2147483
  18. read_buffer_size = 128M
  19. read_rnd_buffer_size = 256M
  20. sort_buffer_size = 256M
  21. key_buffer_size=512M
  22. back_log=500
  23. flush_time=0
  24. open_files_limit=4161
  25. table_definition_cache=1400
  26. binlog_row_event_max_size=16M
  27. # 最大连接数
  28. max_connections=1000
  29. max_connect_errors = 1000
  30. # 线程缓存大小
  31. thread_cache_size=500
  32. # 日志缓冲刷新的频繁程度
  33. innodb_flush_log_at_trx_commit=2
  34. innodb_buffer_pool_size=2G
  35. innodb_log_file_size=512M
  36. innodb_log_buffer_size=256M
  37. innodb_thread_concurrency=32
  38. innodb_autoextend_increment=64
  39. innodb_buffer_pool_instances=8
  40. innodb_concurrency_tickets=5000
  41. innodb_old_blocks_time=1000
  42. innodb_open_files=300
  43. innodb_stats_on_metadata=0
  44. innodb_file_per_table=1
  45. innodb_checksum_algorithm=0
  46. innodb_lock_wait_timeout = 50
  47. # 瓶颈位
  48. query_cache_size = 0
  49. slow-query-log=1
  50. long_query_time=10
  51. lower_case_table_names=1
  52. table_open_cache=4096
  53. autocommit = 1
  54. skip_name_resolve = 1
  55. transaction_isolation = READ-COMMITTED
  56. explicit_defaults_for_timestamp = 1
  57. # Disabling symbolic-links is recommended to prevent assorted security risks
  58. symbolic-links=0

注:

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

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

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

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

新建组和用户

  1. groupadd mysql
  2. useradd -g mysql mysql -s /usr/sbin/nologin

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

  1. mkdir -p /mnt/mysql/mysql_data
  2. mkdir -p /mnt/mysql/mysql_tmp

添加权限

  1. chmod 644 /usr/local/mysql/etc/my.cnf
  2. chmod 750 /mnt/mysql/mysql_data
  3. chmod 750 /mnt/mysql/mysql_tmp
  4. chown -R mysql:mysql /usr/local/mysql
  5. chown -R mysql:mysql /mnt/mysql/mysql_data
  6. chown -R mysql:mysql /mnt/mysql/mysql_tmp

其他权限设置

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

4. 初始化数据库

进入目录

  1. cd /usr/local/mysql/

初始化数据

  1. ./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. 启动数据库

  1. 启动
  2. /usr/local/mysql/support-files/mysql.server start
  3. 停止
  4. /usr/local/mysql/support-files/mysql.server stop
  5. 重启
  6. /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服务

  1. /usr/local/mysql/support-files/mysql.server stop
  2. # 并查看进程,若有则kill
  3. ps -ef|grep mysqld

​ 结果如图所示

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

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

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

  1. ./bin/mysql

(4)执行相关sql命令

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

7. 防火墙开放端口设置

开放端口

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

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

  1. # 启动
  2. systemctl start firewalld
  3. # 关闭
  4. systemctl stop firewalld
  5. # 查看状态
  6. systemctl status firewalld
  7. # 开机禁用
  8. systemctl disable firewalld
  9. # 开机启用
  10. systemctl enable firewalld

作者:晨星1032

附:启动问题排查

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

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

  1. 添加日志方法:
  1. # 修改my.cnf配置文件,增加以下内容
  2. log-error=/mnt/mysql/log-error.txt
  1. 同时对以下文件增加权限
  1. touch /var/log/mariadb/mariadb.log
  2. chown -R mysql:mysql /var/lib/mysql
  3. 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. ASP.Net中的TreeView控件中对节点的上移和下移操作

    Web中的TreeView中的没有PreNode和NextNode属性. 但它的集合属性中有一个IndexOf属性,从而能够找到它的前一个节点知后一个节点. TreeView中要么只有一个根节点:要么 ...

  2. 这些JS技巧,看看你是否都会用?

    问题1:以下代码在浏览器控制台上会打印什么? var a = 10; function foo() { console.log(a); // ?? var a = 20; } foo(); 问题2:如 ...

  3. 第三章 存储器的扩展(二)——> 重要

    3.2 主存储器 四.只读存储器(ROM)---->了解(考试也可能会考) 掩膜ROM(MROM) 行列选择线交叉处有 MOS 管为"1" 行列选择线交叉处无 MOS 管为& ...

  4. ES6 class类 静态方法及类的继承

    一.class类 ES6之前都是定义函数以及函数的原型对象实现类型, 如果想要实现共享构造函数成员,可以用prototype来共享实现 ES6出现之后,使用class类的概念来实现原型的继承 二,静态 ...

  5. MySQL审计audit

    导读: MySQL社区版是不带审计功能的,如果要使用MySQL审计,可以考虑使用中间件(例如proxysql)或者是MariaDB的审计插件.这里以MariaDB的审计插件为例,实现MySQL 5.7 ...

  6. git的简单使用方式(基本操作部分)

    git的简单使用方式(基本操作部分) 1.简单介绍GIT的工作流程 git一般的工作流程: 克隆git的资源作为工作目录(一般会使用命令git clone进行克隆); 在克隆的资源上对文件进行增加或者 ...

  7. thinkphp redis实现文章点赞功能并同步入mysql

    <?php namespace app\common\controller; use think\App; use think\facade\Cache; use think\facade\Db ...

  8. nginx: [emerg] bind() to 0.0.0.0:80 failed (10013:

    问题出现 今天在win10安装nginx时候,启动nginx.exe时在dos窗口出现了这个错误,特此记录一下. 解决方法 上面报错信息的意思大概是:0.0.0:80地址访问不被允许.可能是80端口号 ...

  9. Java 使用URL类通过url下载网络资源

    主要用到的类 地址类: URL http类: HttpURLConnection 输入流: InputStream 输出流: FileOutputStream 上代码 package com.demo ...

  10. 【RAC】Oracle 10g RAC相关启停命令,维护命令

    Oracle10g RAC关闭及启动步骤   情况1:需要关闭DB(所有实例),OS及Server. a.首先停止Oracle10g环境 $ lsnrctl stop (每个节点上停止监听,也可以用s ...