Centos7源码安装MySQL5.7

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 "[email protected]: " ‘{ 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

原文地址:https://www.cnblogs.com/fawaikuangtu123/p/10342260.html

时间: 01-30

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

源码安装mysql5.6.20&&mysql主从设置(多实例做多个主从)

一.源码安装mysql5.6.20 1.编译环境安装 yum install wget gcc* make openssl openssl-devel openssl-clients -y && yum groupinstall "Development Libraries" -y 2.源码下载(软件见Linux部署源码包) wget -P /usr/local/src/ http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.

MYSQL Study案例之--RedHat EL55源码安装Mysql-5.6

MYSQL  Study案例之--RedHat EL55源码安装Mysql-5.6 系统环境: 操作系统:RedHat EL55 DB Soft:  Mysql 5.6.4-m7 1.系统环境 [[email protected] Packages]# uname -a Linux rh6 2.6.18-194.el5.xen #1 SMP Tue Jan 29 11:47:41 EST 2013 i386 i686 GNU/Linux [[email protected] Packages]#

Linux下源码安装Mysql5.5

本文主要介绍了如何在源码安装mysql5.5,所用系统为CentOS6.5 一.安装相应的开发环境 yum install -y ncurses-devel yum install -y libaio yum install -y bison yum install -y gcc-c++ yum install -y openssl-devel 二.安装cmake 跨平台编译器 # tar xf cmake-2.8.8.tar.gz # cd cmake-2.8.8 # ./bootstrap

CentOS 6.5 源码安装MySQL5.6

CentOS 6.5 源码安装MySQL5.6 1:下载安装cmake (mysql5.5以后是通过cmake来编译的) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #http://download.csdn.net/detail/csxuedn/7976005 #wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz # tar -zxv -f /root/cmake-2.8.4.tar.gz

Centos7源码安装mysql

转子 http://www.linuxidc.com/Linux/2015-06/119354.htm 目录 准备工作 运行环境 确认你的安装版本 下载MySQL 安装MySQL 准备安装环境 编译和安装 配置MySQL 单实例配置 单实例配置方法 添加防火墙 启动MySQL 重启MySQL 多实例配置 什么是多实例 多实例配置方法 创建启动文件 初始化数据库 配置防火墙 启动MySQL 登陆MySQL 重启MySQL 准备工作 运行环境 本文的运行环境如下 系统版本 CentOS7最小化安装:

CentOS6.5源码安装MySQL5.6.35

接上一篇文章使用RPM包安装MySQL,确实很方便.但是安装后却不知道各文件保存在哪个文件夹下!尝试使用源码安装~本文主要参考:CentOS 6.4下编译安装MySQL 5.6.14 一.卸载旧版本 1.使用下面的命令检查是否安装有mysql [[email protected] tools]# rpm -qa|grep -i mysql 2.有的话就卸载 [[email protected] tools]# yum remove MySQL-server-5.6.35-1.el6.i686 [

Ubuntu15.04下源码安装MySQL5.6.26数据库

解决Ubuntu 15.04版下源码编译安装MySQL5.6.26数据库问题,这里提供依赖包下载,源码安装方法. (1)安装编译源码需要的包 sudoapt-get install make cmake gcc g++ bison libncurses5-dev 依赖包在博客附件里有下载.下面也有说明一些解决方法. 另外的:cmake-2.8.3.tar.gz安装啊.bison_3.0.2.dfsg-2_i386.deb.ncurses-5.9.tar.gz的依赖缺少的话自己可以去下载安装,由于

CentOs 7 64位 源码安装mysql-5.6.35

首先安装依赖包,避免在安装过程中出现问题 [[email protected] liuzhen]# yum -y install gcc gcc-c++ [[email protected] liuzhen]# yum -y install cmake [[email protected] liuzhen]# yum -y install ncurses-devel [[email protected] liuzhen]# yum -y install autoconf [[email prot

lnmp安装---源码安装mysql5.6 -- nginx -- php -- memached

LNMP --->源码包装nginx mysql5.6  php 1.安装mysql #先解开mysql5.6源码包 #tar -zxf mysql-5.6.25.tar.gz#cd mysql-5.6.25/#useradd mysql#yum -y install cmake  gcc#yum install gcc-c++# yum -y install  ncurses-devel#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCO

CentOs 7 64位 源码安装mysql5.6

首先安装依赖包,避免在安装过程中出现问题 [[email protected] liuzhen]# yum -y install gcc gcc-c++ [[email protected] liuzhen]# yum -y install cmake [[email protected] liuzhen]# yum -y install ncurses-devel mysql源码下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downlo