博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Centos7源码安装MySQL5.7
阅读量:5256 次
发布时间:2019-06-14

本文共 3090 字,大约阅读时间需要 10 分钟。

a.连接数据库报111

从一台linux远程连接另一台linux上的MySQL,出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xx'(111)错误.

1.skip_networking:这个参数让MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式);

2.可能使用了bind_address=127.0.0.1;通过查看my.cnf,以上两个都是没设置的,排除掉这两种情况;

3.排查DNS解析问题,检查是否设置了:skip_name_resolve,这个参数加上后,不支持主机名的连接方式;

4.排查用户和密码问题,其实用户和密码的错误,不会出现111的,所以排除用户密码问题,密码错误报这个错;

ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)

5.排查端口问题,有可能MySQL port不是默认的3306,连接时没有指定--port,最终得出监听端口是11306.

b.mysql5.7初始化

A.安装

yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-develwget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gztar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/groupadd mysqluseradd -r -g mysql -s /bin/false mysqlcd /usr/local/mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysqlmkdir -p /data/mysql/tmpchown -R mysql:mysql /usr/local/mysqlchown -R mysql:mysql /data/mysql/cd /usr/local/mysql/bin./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

初始化数据库,会生成一个临时密码

B.启动

配置my.cnf

[mysqld]character_set_server=utf8init_connect='SET NAMES utf8'basedir=/usr/local/mysqldatadir=/data/mysql#不区分大小写lower_case_table_names = 1#不开启sql严格模式sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"socket=/data/mysql/tmp/mysql.socklog-error=/data/mysql/tmp/mysqld.logpid-file=/data/mysql/tmp/mysqld.pid[mysqld_safe]log-error=/data/mysql/tmp/mysqld_safe.logpid-file=/data/mysql/tmp/mysqld_safe.pid# 添加开机启动cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld# 修改启动脚本vim /etc/init.d/mysqld# 在46行添加路径basedir=/usr/local/mysqldatadir=/data/mysql

C.解决问题

启动报错,这个问题在之前的博客中已经讲过

创建文件并授予mysql权限

touch /data/mysql/tmp/mysqld_safe.logchown -R mysql:mysql /data/mysql/echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profilesource /etc/profile

启动成功后,可以发现,pid文件是[mysqld]中定义的,log-error文件用的是[mysqld_safe]中定义的.

连接数据库,找不到socket,解决办法:

1.创建软链

2.直接指定socket

修改root密码并授权一个新用户

两个用户以不同的方式均可登录

c.mysql5.7忘记root密码,如何修改去密码

# 关闭正在运行的 MySQL service mysql stop# 运行mysqld_safe --skip-grant-tables &# 为了安全可以这样禁止远程连接mysqld_safe --skip-grant-tables --skip-networking &# 使用mysql连接servermysql -p# 更改密码update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';# 新版的mysql数据库下的user表中已经没有Password字段了,而是将加密后的用户密码存储于authentication_string字段flush privileges;quit;# 也可以使用alter user:alter user 'root'@'localhost' identified by '123';# 也可以这样set password for 'root'@'localhost'=password('123');

d.mysql5.7自动初始化root密码

# 确保mysql是启动的defaultmysqlpwd=`grep 'A temporary password' /var/log/mysqld.log | awk -F "root@localhost: " '{ print $2}'`/usr/bin/mysql -uroot -p"${defaultmysqlpwd}" --connect-expired-password <

 

搭建参考这篇:https://blog.csdn.net/z13615480737/article/details/80019881

连接报111:https://www.cnblogs.com/ximalaya/p/6711792.html

忘记root密码:https://www.cnblogs.com/xiaotengyi/p/5458731.html

自动初始化root密码:https://www.cnblogs.com/fb010001/p/9134742.html

转载于:https://www.cnblogs.com/fawaikuangtu123/p/10342260.html

你可能感兴趣的文章
electron入门心得
查看>>
格而知之2:UIView的autoresizingMask属性探究
查看>>
我的Hook学习笔记
查看>>
js中的try/catch
查看>>
寄Android开发Gradle你需要知道的知识
查看>>
简述spring中常有的几种advice?
查看>>
给你的网站404页面加上“宝贝寻亲”公益页面
查看>>
整理推荐的CSS属性书写顺序
查看>>
ServerSocket和Socket通信
查看>>
css & input type & search icon
查看>>
源代码的下载和编译读后感
查看>>
Kafka学习笔记
查看>>
Octotree Chrome安装与使用方法
查看>>
Windows 环境下基于 Redis 的 Celery 任务调度模块的实现
查看>>
趣谈Java变量的可见性问题
查看>>
C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
查看>>
ssm框架之将数据库的数据导入导出为excel文件
查看>>
语音识别中的MFCC的提取原理和MATLAB实现
查看>>
验证组件FluentValidation的使用示例
查看>>
0320-学习进度条
查看>>