Articles of mysql

无法从命令行以非root用户身份login到mysql

我正在build立一个MySQL服务器,我正尝试创build一个非特权用户来login我创build的每个数据库。 我可以成功从控制台以root身份login,但是当我尝试以“rails”用户身份login时,失败。 这是我的用户的样子: mysql>从mysql.user中select用户,主机,密码; + ——— + ———– + ————————— —————- + | 用户| 主机| 密码| + ——— + ———– + ————————— —————- + | root | localhost | * 9CAF1C22F1F66A8C47C74E7F6700391F0AB817F0 | | root | 127.0.0.1 | * C453FFD4FD2470D5CD56BB9A229BDC7388F3A170 | | datadog | localhost | * AEB79FF15C0A9CA185F3768235927ADDD9667C85 | | 铁轨| localhost | * 9CAF1C22F1F66A8C47C74E7F6700391F0AB817F0 | […]

MySQL用户无法从远程主机连接

我有两个具有完全相同权限的MySQL用户,一个可以从远程主机连接,另一个不能。 这怎么可能? 这是我的configuration: SELECT * FROM user WHERE user IN ('baduser','gooduser') AND host='%'; 结果是: Host User Password Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv Show_db_priv Super_priv Create_tmp_table_priv Lock_tables_priv Execute_priv Repl_slave_priv Repl_client_priv Create_view_priv Show_view_priv Create_routine_priv Alter_routine_priv Create_user_priv Event_priv Trigger_priv Create_tablespace_priv ssl_type ssl_cipher x509_issuer x509_subject max_questions max_updates max_connections max_user_connections plugin […]

如何保护从日常运行脚本获取的数据库转储

在我的一个mysql从服务器上,我写了一个每日运行的脚本,它停止了slave,2)取得一个db转储,3)再次启动slave,4)encryption它,5)将它复制到我的s3桶。 我正在使用aws-cli将转储复制到s3-bucket。 这里的问题是,如果有人访问服务器,他可以从存储桶中删除转储,因为aws-cli授予对存储桶的更新/删除访问权限。 如何将转储复制到某处(最好是s3),如果有人访问数据库服务器,则不能删除转储。 当我想到我能想到的是,我需要一个不同的服务器上的一个服务器接受转储作为input,然后将其保存到s3。 此服务不接受任何其他types的请求。 这样我为db备份添加了一个额外的安全层。 问题是我不知道任何这样的系统。 更一般的问题,人们通常如何保护他们的数据。 如果有人访问我的主数据库,即使通过SQL注入,他可以导致所有复制截断或删除。 在这种情况下,需要进行某种常规备份。 在注入的情况下,备份是安全的,但在访问服务器的情况下不是。

面对我的服务器上的黑客活动

我最近将我的托pipe服务器切换到了AWS。 并在最初一切工作正常,但最近我面临的问题,我的服务器,它倒下了好几次。 我已经密切监视它,并知道CPU利用率达到100%几次,每次我需要重新启动我的实例。 所以我已经检查了访问日志和错误日志,似乎一些黑客活动正在我的服务器上进行。 请看下面我的错误日志文件的日志: [Wed Sep 23 14:25:56.081268 2015] [:error] [pid 18791] [client 193.0.***.***:59940] script '/var/www/html/includes/custom.php' not found or unable to stat, referer: -1' OR 2+20-20-1=0+0+0+1 or 'Q2fRfUkq'=' [Wed Sep 23 14:25:56.122526 2015] [:error] [pid 18780] [client 193.0.***.***:59939] script '/var/www/html/includes/custom.php' not found or unable to stat, referer: @@EKtcl [Wed Sep 23 14:25:56.365583 2015] [:error] […]

在循环中分割文件名并引用每个部分

我有一个目录中的文件列表,例如 file.name.aaaaaa.111111 file.name.bbbbbb.222222 file.name.cccccc.333333 我需要一种方法来获取每个文件,将其分割为“。” 然后使用每个部分它将被传递给一个mysql查询。 我有以下几点: for file in $localdir/file.name.* do filename=`basename "$file"` for i in $(echo $filename | tr "." "\n") do echo $i done done 我怎样才能参考个别部分? 因为我只需要MySQL查询的“aaaaa”和“11111”?

MySql数据库中的空白空间

原谅我,如果我不使用适当的词汇。 我计划在PHP前端实现一个MySQL数据库,这样我就可以将工作单细节和文件(screengrabs,ZIP等等)input到数据库中。 就像现在一样,我以前的工作单被保存在电子邮件PST中,并且一次只安装一个工作单来检查和search以前的工作单是不方便的。 工作单上的描述可以是一个长达数千个字符的简短句子。 如果我将列的值设置为VARCHAR( i )或TEXT / MEDIUMTEXT数据types,那么最大空间将分配给每个字段,还是数据库会将字段扩展到数据types所允许的容量? 我想问一个这个问题的视觉方式是,我的文本字段是一个杯子,它的体积不变,水量不定,还是一个膨胀的空气量的气球?

查找睡眠mysql连接的来源

我们在我们的服务器上运行了大量的PHP脚本,它们执行各种操作。 最近我注意到,在PHPMyAdmin中查看时,有很多连接到我们的MySQL服务器只是徘徊。 通常情况下,当脚本查询完成时closures连接非常好,但是显然我们错过了一个或多个连接。 我知道哪个数据库连接正在进行,但只是缩小了这么多。 TL / DR我正在寻找一种简单的方法来确定哪个脚本不应该保持连接。

多状态MySQL主/从心脏起搏器资源无法在群集节点上启动

build立 我正在使用Corosync / Pacemaker受pipe群集中的两台物理服务器为Web应用程序设置HA群集。 在发现我的方向错误之后 ,我决定使用心跳捆绑的MySQL资源代理来pipe理群集中的MySQL实例。 目前,从node1 (当前主机 )到node2 (当前从机 )有一个工作主/从configuration。 现在我想让Pacemakerpipe理我的MySQL实例,以便它可以提升/降级主控或从属。 根据这个(旧的)wiki页面 ,我应该能够通过这样做来实现设置: primitive p_mysql ocf:heartbeat:mysql \ params binary="/usr/sbin/mysqld" \ op start timeout="120" \ op stop timeout="120" \ op promote timeout="120" \ op demote timeout="120" \ op monitor role="Master" timeout="30" interval="10" \ op monitor role="Slave" timeout="30" interval="20" ms ms_mysql p_mysql \ meta clone-max=3 正如你所看到的,我做了第二个op […]

排除/包含AWS中的mysqldump表

我试图找出如何通过terminal在AWS上执行mysqldump命令时排除或包含特定的表。 背景:我有一个WordPress多站点,但只需要前三个字符“wp_”的所有其他表,前缀如“wp_1”,“wp_2”等我不需要在转储文件。 这里是我用来生成转储文件的工作,但获取数据库中的所有表的代码: mysqldump -h RDS instance endpoint \ -u user \ -p databasename \ –port=3306 \ –single-transaction \ –routines \ –triggers \ –databases databasename > path/rds-dump.sql 谢谢!

升级到Debian Jessie后MySQL不启动

我有一台带有几个OpenVZ容器的Proxmox 3.4服务器。 主机和所有客人正在运行Debian 7 x64。 现在我想用Proxmox 4(基于Debian 8)将旧的设置迁移到新的服务器上。 我将多个OpenVZ容器转移到新环境中,并成功导入。 现在我们来解决这个问题:在升级到Debian 8之后,大多数mysqld都不会再启动了。 安装程序向我展示了my.cnf中的更改,因此我使用了包维护者版本。 一台机器仍然启动MySQL,其他一些不configuration,虽然configuration是相同的。 mysql-error-log不显示任何内容,也不显示syslog。 '/etc/init.d/mysql'中的启动脚本和'/etc/mysql/my.cnf'中的configuration在机器上是相同的。 root@web2:~# service mysql restart Job for mysql.service canceled. 直接启动mysqld工作: root@web2:~# mysqld_safe or root@web2:~# /usr/sbin/mysqld –basedir=/usr –datadir=/var/lib/mysql –plugin-dir=/usr/lib/mysql/plugin –user=mysql –log-error=/var/log/mysql/error.log –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/run/mysqld/mysqld.sock –port=3306 有人可以给我一个关于如何解决这个启动或服务问题的提示吗? 任何帮助或暗示在哪里search赞赏。