Viewed   82 times

This message appears in PhpMyAdmin. Often after some update.

There are already a lot of similar questions. One typical answer is "update your libs". But in the end I still see a lot of people who can't solve it. (myself included)

I've tried to reinstall everything from scratch but it's still there and I get this exact version error:

Your PHP MySQL library version 5.5.34 differs from your MySQL server version 5.1.69.

I've added the output of my packages list. Everything looks correct. Or so I think. I don't understand where this 5.1.69 version comes from. I don't have much knowledge of linux / server setup.

Is there any linux/server wizard who can help? thank you : )

[[email protected] bin]# yum list installed | grep mysql

@remi compat-mysql51.x86_64 5.1.54-1.el6.remi
@remi mysql.x86_64 5.5.34-1.el6.remi
@remi mysql-libs.x86_64 5.5.34-1.el6.remi
@remi mysql-server.x86_64 5.5.34-1.el6.remi
@remi php-mysql.x86_64 5.4.20-1.el6.remi

[[email protected] bin]# yum list installed | grep php

@remi php.x86_64 5.4.20-1.el6.remi
@remi php-bcmath.x86_64 5.4.20-1.el6.remi
@remi php-cli.x86_64 5.4.20-1.el6.remi
@remi php-common.x86_64 5.4.20-1.el6.remi
@remi php-fpm.x86_64 5.4.20-1.el6.remi
@remi php-gd.x86_64 5.4.20-1.el6.remi
@remi php-imap.x86_64 5.4.20-1.el6.remi
@remi php-ldap.x86_64 5.4.20-1.el6.remi
@remi php-magickwand.x86_64 1.0.9.2-4.el6.remi
@remi php-magpierss.noarch 0.72-6.el6
@epel php-mbstring.x86_64 5.4.20-1.el6.remi
@remi php-mcrypt.x86_64 5.4.20-1.el6.remi
@remi php-mssql.x86_64 5.4.20-1.el6.remi
@remi php-mysql.x86_64 5.4.20-1.el6.remi
@remi php-odbc.x86_64 5.4.20-1.el6.remi
@remi php-pdo.x86_64 5.4.20-1.el6.remi
@remi php-pear.noarch 1:1.9.4-12.el6.remi.1
@remi php-php-gettext.noarch 1.0.11-4.el6.remi
@remi php-recode.x86_64 5.4.20-1.el6.remi
@remi php-shout.x86_64 0.9.2-9.el6.remi
@remi php-snmp.x86_64 5.4.20-1.el6.remi
@remi php-soap.x86_64 5.4.20-1.el6.remi
@remi php-tcpdf.noarch 6.0.031-1.el6.remi
@remi php-tcpdf-dejavu-sans-fonts.noarch 6.0.031-1.el6.remi
@remi php-tidy.x86_64 5.4.20-1.el6.remi
@remi php-xml.x86_64 5.4.20-1.el6.remi
@remi php-xmlrpc.x86_64 5.4.20-1.el6.remi
@remi phpMyAdmin.noarch 4.0.6-1.el6.remi

The configuration I'm running is CentOs 6.4 nginx/1.4.2 Database client version: libmysql - 5.5.34 PHP extension: mysqli Localhost via UNIX socket

 Answers

2

Your php-mysql package has been linked against an older MySQL client library. It's strongly suggested to install php-mysqlnd, see http://www.webtatic.com/packages/php54/. Then restart your web server.

Sunday, September 25, 2022
 
kelsey
 
1

There is a single quote in $submitsubject or $submit_message

Why is this a problem?

The single quote char terminates the string in MySQL and everything past that is treated as a sql command. You REALLY don't want to write your sql like that. At best, your application will break intermittently (as you're observing) and at worst, you have just introduced a huge security vulnerability.

Imagine if someone submitted '); DROP TABLE private_messages; in submit message.

Your SQL Command would be:

INSERT INTO private_messages (to_id, from_id, time_sent, subject, message) 
        VALUES('sender_id', 'id', now(),'subjet','');

DROP TABLE private_messages;

Instead you need to properly sanitize your values.

AT A MINIMUM you must run each value through mysql_real_escape_string() but you should really be using prepared statements.

If you were using mysql_real_escape_string() your code would look like this:

if($_POST['submit_message']){

if($_POST['form_subject']==""){
    $submit_subject="(no subject)";
}else{
    $submit_subject=mysql_real_escape_string($_POST['form_subject']); 
}
$submit_message=mysql_real_escape_string($_POST['form_message']);
$sender_id = mysql_real_escape_string($_POST['sender_id']);

Here is a great article on prepared statements and PDO.

Tuesday, October 18, 2022
3

OK I've found solution; we still can use 'order' keyword as column name like this:

@Column(name = "`order`", length = 10, precision =0) 
private int order;

Thanks Ghost and Dave Newton for your care. Regards..

Wednesday, December 14, 2022
 
1
ResultSet rsOrders = stmt2.executeQuery(ordersquery);

stmt2 is you sql query then why are you passing ordersquery change your code to below code

ResultSet rsOrders = stmt2.executeQuery();
Sunday, September 11, 2022
 
1

You are missing a whole bunch of PHP extensions. Simply uncomment the required extensions in your PHP.ini. If you are missing extensions, either download a PHP distribution that includes them, or Google around for the individual extension binaries for Windows. (They are scattered about.)

Monday, August 8, 2022
 
4

In MySQL creating a database doesn't automatically create a user to go with it. You must explicitly create the user and grant acess.

http://dev.mysql.com/doc/refman/5.1/en/adding-users.html

Thursday, December 15, 2022
4

The message indicates that :

  • You are using version 5.1.43 of MySQL server
  • But that the library that's used by PHP to communicate with that server has been compiled to communicate with a version 5.0.x of MySQL.

In theory, this should not cause any real problem : minor versions tend to be compatible ; but you might need to update the library that's used by PHP ; maybe some package like "libmysql", or something like that (I don't have a Debian machine)


If you want to make that warning disappear (even if I'm not sure it could really cause any big problem), you'll have to update the PHP component that is used to communicate with MySQL.
Note : With the dependancies, it might not be that easy, actually, to upgrade just one package...

I would say that you'd have to update something like php5-mysql ; which means :

apt-get install php5-mysql

(According to this page -- amongst others -- to update a single package, your must use install)

If you are using aptitude, and not apt-get... Not sure about the right option that you should use to update only one package ; still, aptitude safe-upgrade should present you with a list of packages it will upgrade, which will allow you to decide whether or not you wish to continue...


But you said in a comment to another answer that Debian ships by default with MySQL 5.0 -- which means the "official" module for PHP is probably compiled against libmysql 5.0, and not libmysql 5.1.

To solve that problem, you'll have to either :

  • Find a repository that provides PHP (or, at least, the mysql extension) compiled against libmysql 5.1
  • Or re-compile PHP and/or the mysql extension against the version of libmysql that's currently used on your system -- i.e. libmysql 5.1
Friday, September 9, 2022
 
simplej
 
Only authorized users can answer the search term. Please sign in first, or register a free account.
Not the answer you're looking for? Browse other questions tagged :
 
Share