小编egg*_*yal的帖子

不推荐使用mysql扩展,将来会删除它:使用mysqli或PDO代替

当我尝试从PHP连接到MySQL服务器时,我看到以下错误:

不推荐使用:不推荐使用mysql扩展,将来会将其删除:在第123行的/path/to/filename.php中使用mysqli或PDO

引用行上的代码是:

mysql_connect($server, $username, $password);
Run Code Online (Sandbox Code Playgroud)

我确信这些论点是正确的,而且这个确切的代码已经工作多年而没有问题.实际上,我是从PHP的一个很好的教程中获得的.

  1. 为什么会这样?

  2. 我该如何解决?

  3. 据我所知,这是可以通过设置来抑制弃用错误error_reportingphp.ini排除E_DEPRECATED:

    error_reporting = E_ALL ^ E_DEPRECATED
    
    Run Code Online (Sandbox Code Playgroud)

    如果我这样做会怎么样?

php mysql deprecated

165
推荐指数
1
解决办法
38万
查看次数

找到Linux OOM杀手杀死的进程

当Linux内存不足(OOM)时,OOM杀手基于一些启发式选择一个杀死进程(这是一个有趣的读物:http://lwn.net/Articles/317814/).

如何以编程方式确定最近被OOM杀手杀死的进程?

linux linux-kernel

155
推荐指数
4
解决办法
12万
查看次数

如何修复MySQL错误#1064?

向MySQL发出命令时,我收到错误#1064"语法错误".

  1. 这是什么意思?

  2. 我该如何解决?

mysql syntax parsing syntax-error mysql-error-1064

61
推荐指数
1
解决办法
30万
查看次数

如何基于EXPLAIN计划优化MySQL查询

查看查询EXPLAIN计划,如何确定最佳优化位置?

我很欣赏首先要检查的是,是否正在使用好的索引,但除此之外我还有点难过.通过过去的反复试验,我有时发现连接的顺序可以是一个很好的改进来源,但是如何通过查看执行计划来确定?

虽然我非常希望获得对如何优化查询的好大致的了解(建议阅读非常感谢!),我也认识到,它往往更容易讨论比抽象的谈具体案例.因为我正在用这个撞到墙上,所以你的想法会非常感激:

id   select_type   table   type     possible_keys    key       key_len   ref                    rows   Extra
 1   SIMPLE        S       const    PRIMARY,l,p,f4   PRIMARY         2   const                     1   Using temporary
 1   SIMPLE        Q       ref      PRIMARY,S        S               2   const                   204   Using index
 1   SIMPLE        V       ref      PRIMARY,n,Q      Q               5   const,db.Q.QID            6   Using where; Using index; Distinct
 1   SIMPLE        R1      ref      PRIMARY,L        L             154   const,db.V.VID          447   Using index; Distinct
 1   SIMPLE        W       eq_ref   PRIMARY,w        PRIMARY         5   const,db.R.RID,const      1   Using where; Distinct
 1   SIMPLE        R2      eq_ref   PRIMARY,L …

mysql query-optimization

21
推荐指数
1
解决办法
2万
查看次数

不再支持使用旧密码进行身份验证,请使用4.1样式密码

我的网站有hostgator,我想用C#windows应用程序访问mysql数据库,但是当我尝试连接时得到了这条消息:

"不再支持使用旧密码进行身份验证,请使用4.1样式密码"

我试过给定解决方案:

SET SESSION old_passwords=0;
SET PASSWORD FOR user@host=PASSWORD('your pw here');
Run Code Online (Sandbox Code Playgroud)

第一个查询执行成功但我在第二个查询执行时收到错误"用户@主机访问被拒绝".我不明白为什么会出现这个问题.我正在使用MySQL-connecter-net 6.6.5.

我成功地将我的数据库与MySql workbench 5.2.47连接起来.

有谁可以帮助我,我可以做更多的事情?


我已联系我的托管网站,他们对my.cnf文件进行了更改,以使用4.1样式密码.我能够连接mysql

mysql -u <username> -p <password> -h <hostname>;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用mySQL连接器网6.6.5连接C#时,我再次遇到此错误.

我在Windows 8 64位上使用Visual Studio 2012和MySQL连接器6.6.5.这是我用来连接的代码

using MySQL.Data.MySQLClient;

private void button1_Click(object sender, EventArgs e)
            {
                string connStr = String.Format("server={0};port={1};uid={2};password={3};database={4}",
                    txtserver.Text, txtPort.Text, txtUser.Text, txtPassword.Text, txtDatabase.Text);
                conn = new MySqlConnection(connStr);
                try
                {
                    conn.Open();
                    MessageBox.Show("Test Connection Succeded");
                }
                catch (MySqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
Run Code Online (Sandbox Code Playgroud)

我无法理解问题出在哪里.请帮我

c# mysql authentication

21
推荐指数
2
解决办法
4万
查看次数

如何在UTF-8中使用"不区分大小写"和"不区分重音"的MySQL

我有"utf8 - UTF-8 Unicode"中的模式作为charset和"utf8_spanish_ci"的排序规则.

所有内部表都是InnoDB,具有与上述相同的字符集和校对.

问题出现了:

像查询一样

SELECT *
FROM people p
WHERE p.NAME LIKE '%jose%';
Run Code Online (Sandbox Code Playgroud)

我得到83个结果行.我应该有84个结果,因为我知道.

改变地点:

WHERE p.NAME LIKE '%JOSE%';
Run Code Online (Sandbox Code Playgroud)

我得到完全相同的83行.使用JoSe,Jose,JOSe等组合.报告所有相同的83行.

问题来自游戏中的重音.如果:

WHERE p.NAME LIKE '%josé%';
Run Code Online (Sandbox Code Playgroud)

我没有结果.0行.

但如果我这样做:

WHERE p.NAME LIKE '%JOSÉ%';
Run Code Online (Sandbox Code Playgroud)

我得到一个结果行,所以1行.这是唯一一个带有"jose"和大写字母的行.

我已经尝试过josÉ,或JoSÉ或我做的任何组合,只要重音符号保持大写或不大写,因为它确实存储在数据库中并且它仍然返回唯一的行.如果我突然改变"é"为"é",无论我用JOSE中的大小写做什么组合,它都不返回任何行.

所以结论:

  • 如果游戏中没有拉丁字符,则不区分大小写.
  • 如果出现拉丁字符则区分大小写.
  • 口音敏感,好像我搜索JOSE或jose,我只得到83行,而不是我需要的84行.

我想要的是?

  • 要搜索"jose","JOSE","José","JOSÉ","JÒSE","jöse","JoSÈ",......必须返回我知道存在的84行.我该怎么把我的搜索变为不区分大小写和"拉丁"不敏感.

类似的解决方案COLLATIONLIKE不为我工作的,不知道为什么?

我能做什么?

提前致谢!

编辑:

如果我喜欢这样的话:

WHERE p.NAME LIKE '%jose%' COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

COLLATION 'utf8_general_ci' is not valid for CHARACTER SET 'latin1'

我也改变了列上所有可能的排序规则!

如果我做了类似的事情:

WHERE p.NAME LIKE _utf8 '%jose%' COLLATE utf8_general_ci;
Run Code Online (Sandbox Code Playgroud)

报告了相同的83行,好像我什么都没做......

mysql utf-8 case-insensitive non-ascii-characters

20
推荐指数
2
解决办法
2万
查看次数

MSSQL正则表达式

我有以下REGEX:^ [ - A-Za-z0-9 /.]+$

这当前检查输入到文本框中的值是否与此匹配.如果没有,它会抛出错误.

我需要检查是否有任何内容已经进入与此不匹配的数据库.

我累了:

 SELECT * FROM *table* WHERE ([url] NOT LIKE '^[-A-Za-z0-9/.]+$') 
 SELECT * FROM *table* WHERE PATINDEX ('^[-A-Za-z0-9/.]+$', [url])
Run Code Online (Sandbox Code Playgroud)

UPDATE

经过一些研究后我才意识到我不认为我可以使用REGEXP.

我以为我可以做这样的事情?它没有给我预期的结果,但它的运行不同于其他任何东西.任何人都可以发现它有什么问题吗?

SELECT *, 
  CASE WHEN [url] LIKE '^[-A-Za-z0-9/.]+$' 
    THEN 'Match' 
    ELSE 'No Match' 
  END Validates
FROM 
  *table*
Run Code Online (Sandbox Code Playgroud)

regex sql sql-server

17
推荐指数
2
解决办法
10万
查看次数

MySQL用户定义变量的存储限制

User-Defined Variables下,MySQL手册文档:

可以从一组有限的数据类型为用户变量分配值:整数,十进制,浮点,二进制或非二进制字符串或NULL值.十进制值和实数值的分配不保留值的精度或比例.除了允许类型之外的类型的值被转换为允许类型.例如,具有时间或空间数据类型的值被转换为二进制字符串.

如果为用户变量分配了非二进制(字符)字符串值,则它具有与字符串相同的字符集和排序规则.用户变量的强制性是隐含的.(这与表列值的强制性相同.)

但是手册没有说明:

  • 支持的整数的大小(例如4字节INT或8字节BIGINT),无论是有符号还是无符号,是否ZEROFILL应用(如果是,使用什么显示宽度);

    这个sqlfiddle 似乎暗示MySQL 5.5.25将使用最多BIGINT,根据作业签名,并且不会应用任何ZEROFILL.

  • 固定值和浮点值中使用的精度和比例,因为这不是从赋值中保留的; 和

  • 字符串的最大长度(以字符和/或字节为单位).

    sqlfiddle被限制max_allowed_packet的2个20字节(我不能改变):我的是LONGTEXT2个32字节(4GiB)被支撑.

可以安全地依赖什么限制,特别是在不同的服务器版本和配置中?

mysql variables

14
推荐指数
1
解决办法
2945
查看次数

跨层次数据优化MySQL查询

我有一个相当稳定的有序图~100k顶点和大小~1k边.它是二维的,因为它的顶点可以用一对整数(x, y)(基数~100 x~1000)来识别,并且所有边都严格增加x.

此外,还存在(key, val)与每个顶点相关联的~1k 对的字典.

我目前存储在三个(InnoDB的)表中的MySQL数据库的图形:顶点(我不认为是有关我的问题的表,所以我忽略了包括它,这指的是外键约束它在我的摘录中); 一个包含词典的表格; 和Bill Karwin雄辩地描述的连接顶点的"闭合表".

顶点字典表定义如下:

CREATE TABLE `VertexDictionary` (
  `x`   smallint(6) unsigned NOT NULL,
  `y`   smallint(6) unsigned NOT NULL,
  `key` varchar(50) NOT NULL DEFAULT '',
  `val` smallint(1) DEFAULT NULL,
  PRIMARY KEY (`x`, `y`  , `key`),
  KEY  `dict` (`x`, `key`, `val`)
);
Run Code Online (Sandbox Code Playgroud)

和连接顶点的闭包表:

CREATE TABLE `ConnectedVertices` (
  `tail_x` smallint(6) unsigned NOT NULL,
  `tail_y` smallint(6) unsigned NOT NULL,
  `head_x` smallint(6) unsigned NOT NULL,
  `head_y` smallint(6) unsigned NOT NULL,
  PRIMARY KEY …
Run Code Online (Sandbox Code Playgroud)

mysql sql database-design query-optimization data-structures

13
推荐指数
1
解决办法
959
查看次数

在CentOs中安装mysql-python返回错误

我想在CentOs上运行一个django项目.我尝试通过easy_install和pip安装mysql-python,但是我遇到了错误.我用Google搜索了问题并找到了一些建议,但没有一个能帮到我.

错误是:

_mysql.c:29:20: error: Python.h: No such file or directory
_mysql.c:40:26: error: structmember.h: No such file or directory
_mysql.c:74: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:75: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:76: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:77: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:78: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
_mysql.c:79: error: …
Run Code Online (Sandbox Code Playgroud)

python mysql django mysql-python

13
推荐指数
2
解决办法
2万
查看次数