情况如下: 服务器a上运行的php脚本(nginx + php-fpm)应该通过pdo库访问服务器b上的mysql,但是获取SQLSTATE [HY000] [2003]无法连接到'xxx.xxx .xxx.xxx'(4) 服务器一个centos 6.5,php 5.3; 服务器b centos 6.2,mysql 5.1 然而,mysql命令行客户端 – 作为非特权用户运行 – 可以完美连接,重现性好,稳定。 一旦mysql命令行客户端build立了服务器之间的成功连接,php脚本也成功运行了大约5-7分钟,据推测,直到mysql命令行客户端连接超时。 我错过了什么? 这里是testing脚本: <?php try { $dbh = new PDO('mysql:host=111.111.111.111;dbname=myname;port=3306', 'myuser', 'mypass'); echo 'Connected to database'; } catch(PDOException $e) { echo $e->getMessage(); }
有一个挑战,发现为什么结果是如此。 也许错过了一些明显的 对不起,这不是很具体。 但如果任何人有一个领域的重点,这将是非常有益的。 干杯。 负载testing 其大约5486分钟写入分钟/每秒90。 当服务器变得不堪重负时,我可以在日志中看到以下错误: 11:资源暂时不可用),同时连接到上游 在从上游读取响应报头时,上游超时(110:连接超时) 问题 运行负载testing时,请参阅以下问题: 执行更新/写入(负载testing正在进行的那个)的页面变慢,需要10 20秒来加载。 Nginx在任何页面上给出任意的404。 结果显示,在高峰期可能有10-20%的请求导致404。 我认为他们是两个不同的问题,可能无关。 在图表中我看不到任何平坦的线条,这意味着达到了极限。 Web服务器占用60%的CPU并保持稳定。 RAM看起来不错。 数据库服务器大约占CPU的20%,并保持稳定。 RAM看起来不错。 数据库连接转到1500/2000。 这看起来如果。 虽然它不是平线,这表明它没有达到极限。 networking连接限制似乎是确定的。 索引表在可能/适当的情况下。 基础设施 AWS RDS MySQL 1 x db.m3.xlarge写入操作1 x db.m3.xlarge用于读取操作的复制数据块 AWS EC2 Web服务器Linux,Nginx,PHP-FPM 6 x c3.2xlarge configuration /etc/php-fpm.d/domain.com.conf [domain.com] user = nginx group = nginx ;;;The address on which […]
为了进行备份,我创build了一个脚本,将所有需要备份的文件夹归档,并将其发送到S3(通过s3cmd),然后在上载完成后将其删除。 我正在寻找一种方法来避免创build存档,然后删除它,因为我没有足够的空间临时存储存档! 可能吗? 这是我的脚本: DBLIST=`mysql -uMYSQL_USERNAME -pMYSQL_PASSWORD –events -ANe"SELECT GROUP_CONCAT(schema_name) FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','performance_schema')" | sed 's/,/ /g'` MYSQLDUMP_OPTIONS="-uMYSQL_USERNAME -pMYSQL_PASSWORD –single-transaction –routines –triggers" BACKUP_DEST="/home/backup/db" for DB in `echo "${DBLIST}"` do mysqldump ${MYSQLDUMP_OPTIONS} ${DB} | gzip -f > ${BACKUP_DEST}/${DB}.sql.gz & done wait tar -czvf /home/backup/db2/`date +\%G-\%m-\%d`_db.tar.gz ${BACKUP_DEST} s3cmd –reduced-redundancy put -r /home/backup/db2/ s3://MY-S3-BUCKET/ […]
随着一个新的(但旧的)安装的Ubuntu和MySQL,我发现我可以通过命令行客户端访问MySQL,而不需要任何用户或密码。 以root身份login需要root密码。 但是,在没有指定用户的情况下(即,在命令行中inputmysql )login时,不会询问用户和密码。 我以stewart@localhost身份login。 mysql.user表中不存在这样的用户。 该用户可以看到information_schema数据库。 为什么用户存在? 我以为MySQL用户是独立于OS系统帐户。
我正在build立到MySQL服务器的远程连接,但无论我尝试从远程服务器访问被拒绝错误。 我通过添加用户: CREATE USER 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY '***'; 然后我给了权限: GRANT ALL PRIVILEGES ON databasename.* to username@REMOTE_IP_ADDRESS; 我在MySQL服务器上的用户表显示(除其他外): +—————+——————–+ | user | host | +—————+——————–+ | username | REMOTE_IP_ADDRESS | +—————+——————–+ 如果我向用户显示赠款,我会得到: +————————————————————————————+ | Grants for username@REMOTE_IP_ADDRESS +————————————————————————————+ | GRANT USAGE ON *.* TO 'username'@'REMOTE_IP_ADDRESS' IDENTIFIED BY PASSWORD '***' | GRANT ALL PRIVILEGES ON `databasename`.* TO […]
我正在将应用程序迁移到另一台服务器,并需要将数据库内容从MariaDB迁移到Postgresql。 大多数文档指出,以下格式应该足以转储表: mysqldump -u root -p –compatible=postgresql db > db.sql (and once with –default-character-set=utf8) 当我在Postgres中重新导入数据库时,出现了一些语法错误; 以前没有发生过MySQL数据库的事情,所以我怀疑它与MariaDB有关。 从MariaDB将数据库迁移到其他MySQL服务器时,遇到了类似的问题。 我检查了一些由Postgres文档推荐的工具,但无济于事。 为了进一步做实验,我用–compatible=mysql转储,然后导入到一个MySQL服务器以便用Postgres设置重新转储它,并添加: SET standard_conforming_strings = 'off'; SET backslash_quote = 'on'; 到转储文件的开始,然后在postgres中导入它,这让我获得了一些成功,直到在转储文件中深入到另一个语法错误(在这一点上,像2498行)。 有一个更可靠的方法转换MariaDB数据库到Postgres兼容转储?
我刚刚为一个大约70GB的大型MySQL数据库安装了一个新的服务器。 该数据库定期通过自动进程编写,必须尽可能快地写入数据。 之前我们有一个120GB的SSD服务器,但我们切换到硬盘,因为数据量越来越大。 问题是,当进程运行时,CPU高达150%以上,写操作变得非常慢… 该服务器有一个4核心 – 8线程CPU,32GB内存和2x2TB硬盘以及一个LSI 2108 RAID控制器(RAID 1)。 MariaDB 10.0是这台机器上唯一运行的服务器。 操作系统是Ubuntu 14.04新安装的。 它有一个从属服务器稍微不强大,这就是为什么我启用binlogs。 我调整InnoDB设置如下: query_cache_type = OFF tmp_table_size = 1G max_heap_table_size = 1G transaction-isolation = READ-COMMITTED binlog_format = row innodb_log_file_size = 6G innodb_buffer_pool_size = 24G innodb_log_buffer_size = 8M innodb_file_per_table = 1 innodb_open_files = 400 innodb_io_capacity = 300 innodb_io_capacity_max = 400 innodb_flush_method = O_DIRECT […]
我有一台在AWS上运行Ubuntu 12.04的服务器,我不能再在apt-get上安装任何东西,因为我得到这个错误: 以下软件包具有未满足的依赖关系: mysql-server-5.5:取决于:mysql-server-core-5.5(= 5.5.35-0ubuntu0.12.04.1),但要安装5.5.38-0ubuntu0.12.04.1 E:未满足的依赖关系。 尝试“apt-get -f install”(不指定解决scheme)。 我不知道我做了什么导致这个错误,但dpkg -l产生这个: ii mysql-client-5.5 5.5.40-0ubuntu0.12.04.1 MySQL数据库客户端二进制文件 ii mysql-client-core-5.5 5.5.38-0ubuntu0.12.04.1 MySQL数据库核心客户端二进制文件 ii mysql-common 5.5.40-0ubuntu0.12.04.1 MySQL数据库常用文件,例如/etc/mysql/my.cnf iU mysql-server 5.5.35-0ubuntu0.12.04.1 MySQL数据库服务器(取决于最新版本的metapackage) iF mysql-server-5.5 5.5.35-0ubuntu0.12.04.1 MySQL数据库服务器二进制文件和系统数据库设置 ii mysql-server-core-5.5 5.5.40-0ubuntu0.12.04.1 apt-get -f安装失败,具有相同的未满足的依赖关系问题 有没有办法我可以清理这个 – 我希望以这种方式,我不必长时间停下来的数据库,如果有的话…?
目前,我们的实时数据库服务器每天都会下载大数据转储(大约10GB),将它们导入到MySQL中,对数据进行规范化处理,并构build大量索引(全文索引尤其是征税)。 这在我们想卸载的活动服务器上创build了一个重要的负载。 理想情况下,我们将有一个单独的离线服务器完成所有这些工作,然后简单地打包并将索引完整地传输到活动服务器。 这可能与MySQL(或MariaDB)? 这些是MyISAM表,因为我们使用了合并function。 从我看到直接复制文件当然不是推荐的做事方式,但是如果我们能够保证两台机器上的MySQL版本一致,并且在传输过程中没有使用表格,我们可以这样做吗? 如果是这样,除了复制.frm,.MYD和.MYI文件外,是否还有其他步骤需要执行?
在我的情况下,我在群集中有两个节点,但是当我使用$service mysql bootstrap-pxc启动XtraDB群集时,发现节点没有添加到群集中。 我也检查/var/log/mysql/error.log ,但没有发现错误。 以下是问题: mysql> show status like 'wsrep%'; +————————–+———————-+ | Variable_name | Value | +————————–+———————-+ | wsrep_cluster_conf_id | 18446744073709551615 | | wsrep_cluster_size | 0 | | wsrep_cluster_state_uuid | | | wsrep_cluster_status | Disconnected | | wsrep_connected | OFF | | wsrep_local_bf_aborts | 0 | | wsrep_local_index | 18446744073709551615 | | wsrep_provider_name | […]