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-devel
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
tar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
groupadd mysql
useradd -r -g mysql -s /bin/false mysql cd /usr/local/
mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql
mkdir -p /data/mysql/tmp
chown -R mysql:mysql /usr/local/mysql
chown -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=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/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.sock
log-error=/data/mysql/tmp/mysqld.log
pid-file=/data/mysql/tmp/mysqld.pid [mysqld_safe]
log-error=/data/mysql/tmp/mysqld_safe.log
pid-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/mysql
datadir=/data/mysql

C.解决问题

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

创建文件并授予mysql权限

touch /data/mysql/tmp/mysqld_safe.log
chown -R mysql:mysql /data/mysql/
echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /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连接server
mysql -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 <<EOF
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456Aa?';
EOF

搭建参考这篇: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

Centos7源码安装MySQL5.7的更多相关文章

  1. centos7源码安装mysql5.7.19

    centos7源码包安装mysql5.7 5.7.20安装方法和5.7.19的一样. 1.安装前准备 清空环境.安装相应的软件包 1>关闭防火墙和SELinux 2>配置yum源(阿里云, ...

  2. 64位CentOs7源码安装mysql-5.6.35过程分享

    首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...

  3. 在CentOs7源码安装mysql-5.6.35单实例数据库

    首先安装依赖包,避免在安装过程中出现问题 [root@bogon liuzhen]# yum -y install gcc gcc-c++[root@bogon liuzhen]# yum -y in ...

  4. CentOS7(Linux)源码安装MySQL5.7.X

    介绍 软件应用最重要的就是数据库了,可是还有小伙伴不会在Linux上安装MySQL数据库,今天就来讲讲如何在CentOS7环境使用源码进行安装MySQL5.7.X. MySQL官网下载链接:https ...

  5. CentOS7 实战源码安装mysql5.7.17数据库服务器

    CentOS7 实战源码安装mysql5.7.17数据库服务器 简介:实战演练mysql数据库服务器的搭建  mysql简介: mysql是一个开源的关系型数据库管理系统,现在是oracle公司旗下的 ...

  6. CentOS6.7源码安装MySQL5.6

    1.源码安装MySQL5.6 # CentOS6操作系统安装完成后,默认会在/etc目录下存在一个my.cnf, # 强制卸载了mysql-libs之后,my.cnf就会消失 rpm -qa | gr ...

  7. centos7源码安装Python3的前提条件

    centos7源码安装Python3的前提条件: # yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline- ...

  8. lnmp之阿里云源码安装mysql5.7.17

    mysql5.7.17一直号称世界上最好的mysql 那么就在阿里云主机linux安装它(采用的源码安装mysql5.7.17) 我在阿里云主机上安装它 连接阿里云主机 进入,跟我们自己装的虚拟机一毛 ...

  9. CentOS6.5源码安装MySQL5.6.35

    CentOS6.5源码安装MySQL5.6.35 一.卸载旧版本 1.使用下面的命令检查是否安装有mysql [root@localhost tools]# rpm -qa|grep -i mysql ...

随机推荐

  1. Spring Cloud构建微服务架构(三)消息总线

     注:此文不适合0基础学习者直接阅读,请先完整的将作者关于微服务的博文全部阅读一遍,如果还有疑问,可以再来阅读此文,地址:http://blog.csdn.net/sosfnima/article/d ...

  2. python将excel数据写入数据库,或从库中读取出来

    首先介绍一下SQL数据库的一些基本操作: 1创建 2删除 3写入 4更新(修改) 5条件选择 有了以上基本操作,就可以建立并存储一个简单的数据库了. 放出python调用的代码: 此处是调用dos 操 ...

  3. ASP.NET Web网站中App_Code文件夹的作用及使用场景

    原文地址:Web Site项目和ASP.NET Web Application中App_Code文件夹的作用作者:宾的宾 我现在要建一个ASP.NET的网站了,不难吧,开始动手.如下图: 这种方法建立 ...

  4. HDU 5614 Baby Ming and Matrix tree 树链剖分

    题意: 给出一棵树,每个顶点上有个\(2 \times 2\)的矩阵,矩阵有两种操作: 顺时针旋转90°,花费是2 将一种矩阵替换为另一种矩阵,花费是10 树上有一种操作,将一条路经上的所有矩阵都变为 ...

  5. python基础学习笔记——网络编程(协议篇)

    一 互联网的本质 咱们先不说互联网是如何通信的(发送数据,文件等),先用一个经典的例子,给大家说明什么是互联网通信. 现在追溯到八九十年代,当时电话刚刚兴起,还没有手机的概念,只是有线电话,那么此时你 ...

  6. angularjs报错问题记录

    1.[$injector:unpr]:没有找到注入的东西    2.$compile:multidir:多指令编译错误.    3.[ng:areq]:重复定义了ng-controller.    4 ...

  7. jquery版列表切换功能

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  8. Leetcode 473.火柴拼正方形

    火柴拼正方形 还记得童话<卖火柴的小女孩>吗?现在,你知道小女孩有多少根火柴,请找出一种能使用所有火柴拼成一个正方形的方法.不能折断火柴,可以把火柴连接起来,并且每根火柴都要用到. 输入为 ...

  9. 实用jstl实现未登录时不能绕过登录界面的效果

    package com.filter; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; ...

  10. 【图文】 使用ant编译和发布java项目

        开发JavaEE项目经常会碰到修改代码后,项目没有重新编译的问题.老大给指明了一个解决办法:用ant编译项目. ant是apache基金会下的一个项目,是基于Java语言的构建工具.      ...