当我尝试从PHP连接到MySQL服务器时,我看到以下错误:
不推荐使用:不推荐使用mysql扩展,将来会将其删除:在第123行的/path/to/filename.php中使用mysqli或PDO
引用行上的代码是:
mysql_connect($server, $username, $password);
Run Code Online (Sandbox Code Playgroud)
我确信这些论点是正确的,而且这个确切的代码已经工作多年而没有问题.实际上,我是从PHP的一个很好的教程中获得的.
为什么会这样?
我该如何解决?
据我所知,这是可以通过设置来抑制弃用错误error_reporting的php.ini排除E_DEPRECATED:
error_reporting = E_ALL ^ E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)
如果我这样做会怎么样?
当Linux内存不足(OOM)时,OOM杀手基于一些启发式选择一个杀死进程(这是一个有趣的读物:http://lwn.net/Articles/317814/).
如何以编程方式确定最近被OOM杀手杀死的进程?
向MySQL发出命令时,我收到错误#1064"语法错误".
这是什么意思?
我该如何解决?
查看查询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 …
我的网站有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)
我无法理解问题出在哪里.请帮我
我有"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中的大小写做什么组合,它都不返回任何行.
所以结论:
我想要的是?
类似的解决方案COLLATION在LIKE不为我工作的,不知道为什么?
我能做什么?
提前致谢!
编辑:
如果我喜欢这样的话:
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行,好像我什么都没做......
我有以下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) 在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)被支撑.
可以安全地依赖什么限制,特别是在不同的服务器版本和配置中?
我有一个相当稳定的有序图~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
我想在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) mysql ×8
sql ×2
c# ×1
deprecated ×1
django ×1
linux ×1
linux-kernel ×1
mysql-python ×1
parsing ×1
php ×1
python ×1
regex ×1
sql-server ×1
syntax ×1
syntax-error ×1
utf-8 ×1
variables ×1