网站突然报错 Can't connect to MySQL server on 'localhost' (10048)

网站突然报错 Can't connect to MySQL server on 'localhost' (10048),第1张

由于TIME_WAIT

中存在的连接超过默认值,导致较低吞吐量

.

解决方案

:

和本错误密切相关的两个

windows

的注册表项

:TcpTimedWaitDelay

MaxUserP

ort

的值

.

TcpTimedWaitDelay

确定

TCP

/IP

可释放已关闭连接并重用其资源前

,

必须经过的时间

.

关闭和释放之间的此时间间

隔通称

TIME

_WAIT

状态或两倍最大段生命周期(

2MSL

)状态

.

此时间期间

,

重新打开到客户机和服务器的连接的成

本少于建立新连接

.

减少此条目的值允许

TCP

/IP

更快地释放已关闭的连接

,

为新连接提供更多资源

.

MaxUserP

ort

确定从系统请求任何可用用户端口时所用最大端口数,

TCP

/IP

可指定的最高端口号

.

如果建立

TCP

接最大端口连接大于

5000,

本地计算机响应以下错误信息

WS

AE

NOBUFS

(10055):

因为系统缺乏足够缓冲区或者因

为队列已满而无法执行套接字上 *** 作

,

从而导致应用程序的

10048

错误

.

来自博客

关于ubuntu环境下的mysql错误:

重启mysql后,大概半小时后,又不断报错,再次重启mysql报错;

根据以上错误提示,分别使用systemctl status mysqld.service和journalctl -xe查看服务启动失败的原因:

通过上面也没发现导致mysql启动错误的关键原因:

然后查看开MySQL的错误日志,我的错误日志在 /var/log/mysql 目录下

通过以上日志,可以看到Cannot allocate memory for the buffer pool,这是因为MySQL内存不足导致启动失败,

查询内存的命令:

解决方法:

增加swap交换空间解决问题:

增加自动挂载:

在文件/etc/fstab中加入 /swapfile swap swap defaults 0 0

在下面添加 /swapfile swap swap defaults 0 0

重启mysql

重启后问题解决。

mysql ndbcluster 安装

1.数据库规划:

*** 作系统 centos 6.3

ndbcluster 版本:MySQL-Cluster-gpl-7.4.8-1.el6.x86_64

2个管理节点、2个sql节点、2个数据节点(管理节点和sql节点放在同一台服务器上)

如下:

管理节点1 192.168.1.17

管理节点2 192.168.1.18

sql节点1 192.168.1.17

sql节点2 192.168.1.18

ndbd 节点1 192.168.1.19

ndbd 节点2 192.168.1.20

2. *** 作系统设置:

设置服务主机名称

关闭selinux和防火墙

设置内核参数和最大进程数

下载mysql集群

MySQL-Cluster-gpl-7.4.8-1.el6.x86_64.rpm-bundle.tar

上传到服务器的相应目录下如 /home/mysqlinstall

3.安装管理节点和sql节点:

To check if your system has any RPM version of any MySQL package currently installed, run:

shell>rpm -qa | grep -i mysql

检查

[root@redis1 ~]# rpm -qa | grep -i mysql

mysql-libs-5.1.61-4.el6.x86_64

如果有删除

shell>rpm -e mysql-libs-5.1.61-4.el6.x86_64

删除报错:

[root@redis1 ~]# rpm -e mysql-libs-5.1.61-4.el6.x86_64

error: Failed dependencies:

libmysqlclient.so.16()(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

mysql-libs is needed by (installed) postfix-2:2.6.6-2.2.el6_1.x86_64

[root@redis1 ~]#

解决:

[root@redis1 ~]# rpm -e --nodeps mysql-libs-5.1.61-4.el6.x86_64

[root@redis1 ~]#

[root@ndbcluster1 mysqlinstall]# rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

[root@ndbcluster1 mysqlinstall]# rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

4.安装数据节点:

执行上面步骤

[root@ndb mysqlinstall]# rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

[root@ndb mysqlinstall]# rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

5.配置集群

管理节点建立目录

mkdir /var/lib/mysql-cluster

mkdir -p /data/mysql/ndbdata

5.启动关闭集群:

启动管理节点

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --initial (第一次启动加--initial修改了配置文件后的启动)

启动数据节点

ndbmtd --initial

启动sql节点

service mysql start

查看集群状态

shell>ndb_mgm -e "SHOW"

关闭管理节点和数据节点

ndb_mgm -e shutdown

关闭sql节点

service mysql stop

安装遇到的问题:

1.权限问题启动mysql报错

[root@sqlmgm2 mysql]# service mysql start

Starting MySQL..The server quit without updating PID file ([FAILED]sql/sqlmgm2.pid).

[root@sqlmgm2 mysql]#

[root@sqlmgm2 mysql]# ll

total 110644

-rw-rw---- 1 mysql mysql 56 Dec 14 17:13 auto.cnf

-rw-rw---- 1 mysql mysql 12582912 Dec 14 17:39 ibdata1

-rw-rw---- 1 mysql mysql 50331648 Dec 14 17:40 ib_logfile0

-rw-rw---- 1 mysql mysql 50331648 Dec 14 17:13 ib_logfile1

drwx------ 2 mysql mysql 4096 Dec 14 17:39 mysql

drwx------ 2 root root 4096 Dec 14 17:39 ndbinfo

drwx------ 2 root root 4096 Dec 14 17:39 performance_schema

-rw-r----- 1 mysql mysql30068 Dec 14 17:40 sqlmgm2.err

drwx------ 2 root root 4096 Dec 14 17:33 test

[root@sqlmgm2 mysql]# chown mysql:mysql -R mysql

[root@sqlmgm2 mysql]# service mysql start

Starting MySQL.. [ OK ]

[root@sqlmgm2 mysql]#

2.安装rpm包时,报包依赖关系如下:

[root@ndbcluster2 mysqlinstall]# rpm -ivh MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm

warning: MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

error: Failed dependencies:

libnuma.so.1()(64bit) is needed by MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64

libnuma.so.1(libnuma_1.1)(64bit) is needed by MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64

libnuma.so.1(libnuma_1.2)(64bit) is needed by MySQL-Cluster-server-gpl-7.4.8-1.el6.x86_64

解决方法是把安装的依赖的包

[root@ndbcluster2 mysqlinstall]# yum install numactl

Loaded plugins: fastestmirror, refresh-packagekit, security

Loading mirror speeds from cached hostfile

* base: mirrors.163.com

* extras: mirrors.opencas.cn

* updates: mirrors.opencas.cn

Setting up Install Process

Resolving Dependencies

-->Running transaction check

--->Package numactl.x86_64 0:2.0.9-2.el6 will be installed

-->Finished Dependency Resolution

Dependencies Resolved

==============================================================================================================================

Package ArchVersion Repository Size

==============================================================================================================================

Installing:

numactl x86_64 2.0.9-2.el6 base 74 k

Transaction Summary

==============================================================================================================================

Install 1 Package(s)

Total download size: 74 k

Installed size: 171 k

Is this ok [y/N]: y

Downloading Packages:

numactl-2.0.9-2.el6.x86_64.rpm | 74 kB 00:00

warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY

Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Importing GPG key 0xC105B9DE:

Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>

Package: centos-release-6-3.el6.centos.9.x86_64 (@anaconda-CentOS-201207061011.x86_64/6.3)

From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Is this ok [y/N]: y

Running rpm_check_debug

Running Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : numactl-2.0.9-2.el6.x86_64 1/1

Verifying : numactl-2.0.9-2.el6.x86_64 1/1

Installed:

numactl.x86_64 0:2.0.9-2.el6

Complete!

3.启动数据库节点无法和管理节点相连

原因由于防火墙和selinux没有关闭

解决关闭防火墙和selinux

一、关闭防火墙

1、重启后永久性生效:

开启:chkconfig iptables on

关闭:chkconfig iptables off

2、即时生效,重启后失效:

开启:service iptables start

关闭:service iptables stop

二、关闭SELinux

vim /etc/selinux/config # 改为 SELINUX=disabled

# 保存退出,重启服务器

init 6

禁用SeLinux

#永久禁用,需要重启生效。

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

# 临时禁用,不需要重启

setenforce 0

4.root用户不能登录

[root@ndbcluster2 ~]# mysql -uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@ndbcluster2 ~]# mysql -uroot -p

Enter password:

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

设置--skip-grant-tables跳过授权表认证

service mysqld stop

在配置文件中添加--skip-grant-tables(/etc/my.cnf)

service mysqld start

另外开个SSH连接

[root@localhost ~]# mysql

mysql>use mysql

mysql>update user set password=password("123456") where user="root"

mysql>flush privileges

mysql>exit

去掉--skip-grant-tables重启mysql,root用户可以用设置的密码登录

设置root用户远程登录

GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH GRANT OPTION

执行报如下错误,ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

[root@ndbcluster1 ~]# mysql -uroot -p

Enter password:

Welcome to the MySQL monitor. Commands end with or \g.

Your MySQL connection id is 2

Server version: 5.6.27-ndb-7.4.8-cluster-gpl

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

mysql>

mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'root' WITH GRANT OPTION

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'root001' WITH GRANT OPTION

ERROR 1820 (HY000): You must SET PASSWORD before executing this statement

执行SET PASSWORD修改成功

mysql>SET PASSWORD = PASSWORD('root001')

Query OK, 0 rows affected (0.02 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'root' WITH GRANT OPTION

Query OK, 0 rows affected (0.02 sec)

mysql>

FLUSH PRIVILEGES

执行完成

远程连接测试,mysql集群节点,发现一个节点可以连接,一个节点不能连接

这个问题纠结很久

原因上面的 *** 作,没有在另外一个节点上执行导致的,mysql集群的用户认证是分开管理的,要两个节点都要执行

索引以后创建用户要两个节点都执行

5.配置两个管理节点时show报错Could not get configuration

[root@ndbcluster2 mysql-cluster]# ndb_mgm

-- NDB Cluster -- Management Client --

ndb_mgm>show

Connected to Management Server at: 192.168.1.17:1186

ERROR Message: The cluster configuration is not yet confirmed by all defined management servers. This management server is still waiting for node 6 to connect.

Could not get configuration

* 4012: Failed to get configuration

*The cluster configuration is not yet confirmed by all defined management servers. This management server is still waiting for node 6 to connect.

ndb_mgm>show

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2 (not connected, accepting connect from 192.168.1.18)

id=3 (not connected, accepting connect from 192.168.1.17)

[ndb_mgmd(MGM)] 2 node(s)

id=1@192.168.1.17 (mysql-5.6.27 ndb-7.4.8)

id=6@192.168.1.18 (mysql-5.6.27 ndb-7.4.8)

[mysqld(API)] 2 node(s)

id=4 (not connected, accepting connect from 192.168.1.17)

id=5 (not connected, accepting connect from 192.168.1.18)

两个管理节点同时都启动起来,才能看到状态

ndb_mgm>show

Cluster Configuration

---------------------

[ndbd(NDB)] 2 node(s)

id=2@192.168.1.18 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0, *)

id=3@192.168.1.17 (mysql-5.6.27 ndb-7.4.8, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)

id=1@192.168.1.17 (mysql-5.6.27 ndb-7.4.8)

id=6@192.168.1.18 (mysql-5.6.27 ndb-7.4.8)

[mysqld(API)] 2 node(s)

id=4@192.168.1.17 (mysql-5.6.27 ndb-7.4.8)

id=5@192.168.1.18 (mysql-5.6.27 ndb-7.4.8)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7356890.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存