Articles of mysql

MYSQL DB不能启动

我有VPS在哪里运行Apache和MySQL,并从昨天我无法启动MySQL服务器了: sudo service mysql start start: Job failed to start 在/var/log/mysql/error.log输出error.log: 2015-10-31 01:20:37 9857 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 2015-10-31 01:20:37 9857 [Note] Plugin 'FEDERATED' is disabled. 2015-10-31 01:20:37 9857 [ERROR] Function 'innodb' already exists […]

configurationMySQL服务器以最小化磁盘使用率

我有一台带有测量设备和脚本的Raspberry PI计算机,每五分钟进行一次测量,并将结果存储在MySQL数据库中。 我configuration了MySQL服务器,使数据库保存在外部的USB硬盘上,以便尽可能地减less用作Rpi根文件系统的SD卡的磨损。 每5分钟保存在我的硬盘上的整个数据只有less数几个数字 – 其中包括两个数字,时间戳和ID作为MySQL表的主键 – 然而,MySQL服务器在每次有新数据时都会一直写到磁盘上。 这导致磁盘每五分钟旋转一次,这会增加电力使用并磨损硬盘。 有没有办法configurationMySQL来cachingRAM中的一些数据,直到它有足够的写入到硬盘驱动器? 我假设默认configuration在短时间内针对大量数据进行了优化,在例如情况下是可靠的。 电源故障,但我其实不关心这些。 即使发生电力故障(相当不可能),如果我错过了几个必要的结果,也不会有什么问题。 我已经查看了MySQL文档并且search了它,但是关于MySQL和磁盘使用情况的所有资源似乎都集中在增加HDD吞吐量或优化它以缩短响应时间。 如果重要, mysqld -V返回: mysqld Ver 5.5.46-0+deb7u1 for debian-linux-gnu on armv7l ((Debian)) 编辑: 我意识到,我在这里使用MySQL有点像金锤子 – MySQL从来没有写过我的这种应用程序。 也许有人可以提出一个替代解决scheme来解决我的问题,这需要类似数量的工作来设置。

MySQL拒绝访问合法的远程用户

我已经创build了一个用户并赋予该用户完全访问权限,但MySQL仍然拒绝访问该用户 – 为什么? 创build用户: create user 'myUser'@'Mikes-MacBook-Air.local' identified by 'account_password' 授予所有数据库权限: grant all privileges on *.* to 'myUser'@'Mikes-MacBook-Air.local' identified by 'account_password' with grant option 已validation的授予 show grants for 'myUser'@'Mikes-MacBook-Air.local' MySQL在IP 192.168.0.2的计算机上运行(已validation),客户端从IP 192.168.0.3的计算机连接。 我甚至用ip作为域创build了一个用户帐户: 创build用户: create user 'myUser'@'192.168.0.3' identified by 'account_password' 授予所有数据库权限: grant all privileges on *.* to 'myUser'@'192.168.0.3' identified by 'account_password' with grant option 已validation的授予 […]

使用NAS服务器作为数据库服务器,一个不错的select?

简介:我有六台除本地主机数据库以外的服务器,另外我租用了一个安装在每个除去服务器的/ mnt目录下的NAS服务器(NFS HA Hybrid),我想用它作为数据库服务器。 目标:现在数据库是本地主机,我想(例如)专用服务器2,3,4,5和6可以访问专用的1数据库。 另外,每个受访服务器在访问单个数据库时都有很多过程。 我读过,我可以更改MySQL数据库目录到/ mnt目录,这可能是一个不错的select?

MySQL系统帐户无法写入CentOS 6.7上的日志

我有安装了MySQL 5.1.73的CentOS 6.7服务器。 我试图启用复制失败,因为“mysqld_safe”不能写入“/var/log/mysql/mysql-bin.index”; 即使该目录的存在和权限为“drw-r —–”。 如果我“su mysql”,那么我甚至不能列出内容… SELinux被禁用(并重新启动系统),所以我不明白什么是错的。 有任何想法吗?

MySql Azure抛出池连接超时错误

我在同一虚拟networking上有两台Azure虚拟机。 一个虚拟机运行一个负责MySQL操作的NodeJs进程。 其他虚拟机运行一个MySQL实例。 我可以从另一个虚拟机和NodeJs进程连接到它。 有时它会失败,并从池中获取连接时出现关于连接超时的错误。 我的连接string使用虚拟networking内的本地IP地址访问数据库,所以它应该有这么多的延迟超过10秒的超时。 当它工作的时候很快,我的意思是非常快! 但是有时它只是rest,随机开始工作。 有人遇到过这个? 如果有任何帮助,这是一个基于Ubuntu Server 15.10的MySQL实例。 例外: { "error": { "name": "Error", "status": 500, "message": "connect ETIMEDOUT", "errorno": "ETIMEDOUT", "code": "ETIMEDOUT", "syscall": "connect", "fatal": true, "stack": "Error: connect ETIMEDOUT at PoolConnection.Connection._handleConnectTimeout (projectdir/node_modules/loopback-connector-mysql/node_modules/mysql/lib/Connection.js:375:13) at Socket.g (events.js:180:16) at Socket.EventEmitter.emit (events.js:92:17) at Socket._onTimeout (net.js:327:8) at Timer.unrefTimeout [as ontimeout] (timers.js:412:13) ——————– at Protocol._enqueue […]

无法在机架空间实例上的端口3306(mysql)上连接到Ubuntu

我试图连接到Ubuntu盒子上的端口3306,我无法这样做。 当我做iptables -L -n | grep 3306 iptables -L -n | grep 3306我看到这个: ACCEPT tcp — 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306 ACCEPT udp — 0.0.0.0/0 0.0.0.0/0 udp dpt:3306 所以看起来我应该能够连接。 有什么规则可以解决吗? 在我粗略的一瞥中,我没有看到任何东西。 另外,当我做grep 80和grep 443我看到的和上面几乎一样的东西,但是80和443而不是3306.而且我可以在端口80和443上连接,即使我无法连接在端口3306上。 networking服务器托pipe在机架空间的云端。 我知道AWS有独立于可以设置的操作系统的额外防火墙规则 – 是否有rackspace? 我没有find任何通过菜单,我的谷歌search也没有certificate非常有成效。

MySQL过载100%的CPU

我的网站今天似乎有超过一百万的访问量,通常大约是两万个,对我来说,似乎几乎没有反应。 我已经做了一些调查并优化了Apache,修正了PHP会话的一个错误,但现在我遇到的问题是MySQL通常使用100%+ CPU。 服务器是32GB的RAM,约50%免费,无交换,3.3Ghz CPU,4核心,4线程。 我已经在PHP中closures了持续的MySQL连接。 当我运行SHOW PROCESSES(); 最多只有8个,没有一个在拖延。 我的大部分表格都是MyISAM。 InnoDB的表没有太多用处。 my.cnf的内容: expire_logs_days = 10 max_binlog_size = 100M innodb_file_per_table innodb_flush_method=O_DIRECT innodb_log_file_size=1G innodb_buffer_pool_size=4G [mysqldump] quick quote-names max_allowed_packet = 16M [isamchk] key_buffer = 16M !includedir /etc/mysql/conf.d/ 有没有人有任何build议的命令来运行? 设置改变? 这可能有帮助。 或者,也许服务器无法处理这么多的stream量。 虽然在每天60万次访问中都很好。 UPDATE 根据这篇文章: https://o6asan.com/blog-e/2014/07/03/how-to-see-mysql-server-status-by-phpmyadmin/ 我进入了phpMyAdmin状态面板,并开始玩一些突出显示为红色的值。 这似乎有一点帮助。 然而,就我而言,我认为我没有办法做,因为服务器每秒处理大约500个查询。 所以我会考虑打开我的HTMLcaching。 使用100MBcaching启用MySQL查询caching也有很大的不同。 该网站仍然是缓慢的,但它在每个负载,有时很快,有时慢。 最终的解决scheme是caching整个网站,禁止一些需要活力的页面。

Docker容器中的MariaDB发生超时错误

我有一个ArchLinux安装与容器中运行的Docker和MariaDB 。 现在当我尝试连接到数据库,我得到以下欧元: MySQL said: Can't connect to MySQL server on '$mydomain' (4) 。 我做的事情使它可用: 创buildroot用户并授予%访问权限。 用custom.cnf文件夹,内容如下: [mysqld] bind-address=0.0.0.0 在docker run暴露3306:3306 configurationUFW ufw status | grep 3306 ufw status | grep 3306 : 3306 ALLOW Anywhere 3306 (v6) ALLOW Anywhere (v6) 我不知道我错过了什么。 我可以使用容器内的给定密码连接,但不能从本地主机连接。 提前致谢! 编辑:我设法通过容器的内部IP从另一个容器连接,所以它在我认为的主机上工作? 也许这是一个防火墙问题(但这是没有意义的,因为禁用ufw和iptables没有任何帮助)。

寻找快速并发的mysql连接的来源

所以我们在我们的服务器上运行了大量的脚本,它们会定期打开mysql连接,而且一旦完成使用,我们通常会closures连接。 最近,虽然我们已经看到连接(8000以上)的大量峰值,导致我们的服务器崩溃。 中断只能持续几秒钟,但是它将一大堆依赖函数抛入混乱中,尽pipe可pipe理显然是不可取的。 我的猜测是某个脚本正在运行,导致连接在某种循环中打开,可能是cron。 问题是,我似乎无法find这种情况发生时的模式,我无法捕获连接正在吃掉的端口,因为连接开始打开后,服务器崩溃毫秒。 我正在寻找的是我可以用来确定这些连接突然从哪里来的一些策略或方法。