Welcome to Geeklog, Anonymous Thursday, March 28 2024 @ 06:04 am EDT

Geeklog Forums

SQL connection error on fresh install of 1.3.11


Status: offline

jedi

Forum User
Newbie
Registered: 01/13/05
Posts: 3
I needed to setup a demo installation of Geeklog on my laptop running WinXP Pro and IIS 5.1.

Installed:
- PHP 4.3.9 (changed Register Globals to ON in .ini file)
- MySQL 4.1.8 (took all the defaults).

created the database and set the permissions on it.

Extracted geeklog-1.3.11 and edited the config.php and
lib-common.php files and ran the install.php.

Setup my virtual dir in IIS, set my permissions.

Here's where it gets funny, First screen is fine, I choose New database and go on...

I get:
Warning: mysql_connect(): Client does not support authentication protocol requested by server; condsider upgrading MySQL client in c:websgeeklogsystemdatabasesmysql.class.php

Is this a common thing on the windows platform? I've installed this a bunch of times on *nix systems but this is my first time to install on a windows system.

Any help would be much appreciated. Can someone help me

Jedi
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
I am having the same problem. You can check out this page as right now I got to get some sleep.
http://dev.mysql.com/doc/mysql/en/Old_client.html

Also, you might like to know MySQL just updated to 4.1.9 but no servers as of the moment of this writing seem to have it for download.
http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-noinstall-4.1.9-win32.zip/from/pick

If you manage to find a solution please share it. Otherwise tomorrow, I will look into it and post any findings.
Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
I just tried one of the download links and MySQL worked. This is just a thought but are you using one of the included my*.ini files located within the root OR are you using your own?

If you're using your own, this might be the problem as before not much was required for MySQL to run without problems. The included my*.ini files seem to now require more information.

Not really to sure. Just some thoughts. Let me know your solution if any. I'll post mines tomorrow.
Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

Dirk

Site Admin
Admin
Registered: 01/12/02
Posts: 13073
Location:Stuttgart, Germany
Quote by jedi: - PHP 4.3.9 (changed Register Globals to ON in .ini file)
- MySQL 4.1.8 (took all the defaults).

(snip)

Warning: mysql_connect(): Client does not support authentication protocol requested by server; condsider upgrading MySQL client in c:websgeeklogsystemdatabasesmysql.class.php

The error message is trying to tell you that the interfaces that PHP and MySQL use to talk to each other are not compatible.

On a Unix box, I'd say you have to recompile PHP. You probably have a version that's built for an earlier MySQL version. Or find a precompiled one for your setup.

bye, Dirk
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
I had the same exact problem. I managed to fix it with one really simple solution. I threw away my old my.ini file located in the Windows directory and traded it in for a newer more updated version. The following code I generated with the MySQL Server Instance Configuration Wizard.

The following code works fine on the zipped version of MySQL for Windows. To use the code, copy it into a new file and rename the file "my.ini". Then place the file into your Windows directory. This file might not give you all of your options upfront but it's a great starter template. Good luck!

Text Formatted Code
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# Generated by the MySQL Server Instance Configuration Wizard
#
#
# Installation Instructions
# ----------------------------------------------------------------------
#
# On Linux you can copy this file to /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options
# (@localstatedir@ for this installation) or to
# ~/.my.cnf to set user-specific options.
#
# On Windows you should keep this file in the installation directory
# of your server (e.g. C:Program FilesMySQLMySQL Server 4.1). To
# make sure the server reads the config file use the startup option
# "--defaults-file".
#
# To run run the server from the command line, execute this in a
# command line shell, e.g.
# mysqld --defaults-file="C:Program FilesMySQLMySQL Server 4.1my.ini"
#
# To install the server as a Windows service manually, execute this in a
# command line shell, e.g.
# mysqld --install MySQL41 --defaults-file="C:Program FilesMySQLMySQL Server 4.1my.ini"
#
# And then execute this in a command line shell to start the server, e.g.
# net start MySQL41
#
#
# Guildlines for editing this file
# ----------------------------------------------------------------------
#
# In this file, you can use all long options that the program supports.
# If you want to know the options a program supports, start the program
# with the "--help" option.
#
# More detailed information about the individual options can also be
# found in the manual.
#
#
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]

port=3306


# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306


#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Aeonserv/mysql/"

#Path to the database root
datadir="C:/Aeonserv/mysql/Data/"

# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=utf8

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

# The maximum amount of concurrent sessions the MySQL server will
# allow. One of these connections will be reserved for a user with
# SUPER privileges to allow the administrator to login even if the
# connection limit has been reached.
max_connections=100

# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again. Having the query
# cache enabled may result in significant speed improvements, if your
# have a lot of identical queries and rarely changing tables. See the
# "Qcache_lowmem_prunes" status variable to check if the current value
# is high enough for your load.
# Note: In case your tables change very often or if your queries are
# textually different every time, the query cache may result in a
# slowdown instead of a performance improvement.
query_cache_size=0

# The number of open tables for all threads. Increasing this value
# increases the number of file descriptors that mysqld requires.
# Therefore you have to make sure to set the amount of open files
# allowed to at least 4096 in the variable "open-files-limit" in
# section [mysqld_safe]
table_cache=256

# Maximum size for internal (in-memory) temporary tables. If a table
# grows larger than this value, it is automatically converted to disk
# based table This limitation is for a single table. There can be many
# of them.
tmp_table_size=5M


# How many threads we should keep in a cache for reuse. When a client
# disconnects, the client's threads are put in the cache if there aren't
# more than thread_cache_size threads from before.  This greatly reduces
# the amount of thread creations needed if you have a lot of new
# connections. (Normally this doesn't give a notable performance
# improvement if you have a good thread implementation.)
thread_cache=8

#*** MyISAM Specific options

# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method.  This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_max_extra_sort_file_size=100G

# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method.  This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=8M

# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=4M

# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K

# This buffer is allocated when MySQL needs to rebuild the index in
# REPAIR, OPTIMZE, ALTER table statements as well as in LOAD DATA INFILE
# into an empty table. It is allocated per thread so be careful with
# large settings.
sort_buffer_size=212K


#*** INNODB Specific options ***


# Use this option if you have a MySQL server with InnoDB support enabled
# but you do not plan to use it. This will save memory and disk space
# and speed up some things.
#skip-innodb

# Additional memory pool that is used by InnoDB to store metadata
# information.  If InnoDB requires more memory for this purpose it will
# start to allocate it from the OS.  As this is fast enough on most
# recent operating systems, you normally do not need to change this
# value. SHOW INNODB STATUS will display the current amount used.
innodb_additional_mem_pool_size=2M

# If set to 1, InnoDB will flush (fsync) the transaction logs to the
# disk at each commit, which offers full ACID behavior. If you are
# willing to compromise this safety, and you are running small
# transactions, you may set this to 0 or 2 to reduce disk I/O to the
# logs. Value 0 means that the log is only written to the log file and
# the log file flushed to disk approximately once per second. Value 2
# means the log is written to the log file at each commit, but the log
# file is only flushed to disk approximately once per second.
innodb_flush_log_at_trx_commit=1

# The size of the buffer InnoDB uses for buffering log data. As soon as
# it is full, InnoDB will have to flush it to disk. As it is flushed
# once per second anyway, it does not make sense to have it very large
# (even with long transactions).
innodb_log_buffer_size=1M

# InnoDB, unlike MyISAM, uses a buffer pool to cache both indexes and
# row data. The bigger you set this the less disk I/O is needed to
# access data in tables. On a dedicated database server you may set this
# parameter up to 80% of the machine physical memory size. Do not set it
# too large, though, because competition of the physical memory may
# cause paging in the operating system.  Note that on 32bit systems you
# might be limited to 2-3.5G of user level memory per process, so do not
# set it too high.
innodb_buffer_pool_size=8M

# Size of each log file in a log group. You should set the combined size
# of log files to about 25%-100% of your buffer pool size to avoid
# unneeded buffer pool flush activity on log file overwrite. However,
# note that a larger logfile size will increase the time needed for the
# recovery process.
innodb_log_file_size=10M

# Number of threads allowed inside the InnoDB kernel. The optimal value
# depends highly on the application, hardware as well as the OS
# scheduler properties. A too high value may lead to thread thrashing.
innodb_thread_concurrency=8
 

Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
Whoa, I believe I might have spoken a little early Embarassed. Here was my problem. I couldn't create a new database with Geeklog. I too was prompted with the same error. I changed the config file my.ini and without a password for Geeklog and phpMyAdmin I was able to create the Geeklog database and access phpMyAdmin.

Everything is OK without a password. Yet, It is in applying a password I happen to get locked out. Whether I apply the password through cmd or through phpMyAdmin, I get locked out and get the error. I am beginning to believe the latest packages of MySQL might not have included the latest client. Something is wrong and I'll keep looking.

My version of PHP is 4.3.10 and MySQL 4.1.9. I obviously have the latest versions. Not sure what the problem is but I'll keep looking. I'll post an answer when I find one.
Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
The only work around I've managed to come up with so far is the following. Take the above script I've given you OR take your own and add this bit anywhere you want.
Text Formatted Code
old_passwords
 
Within the above (full) script, I've placed it in two spots. One under [client] under port=3306 and the other under [mysqld] under port=3306.

It looks like the following.
Text Formatted Code
[client]
port=3306
old_passwords

[mysqld]
port=3306
old_passwords
 
This code will basically allow MySQL 4.1.9 to work with old styled passwords. This seems to be a major issue which has so far not been acknowledged as a bug. All distributions (zip, exe, etc) on the Windows platform of the MySQL 4.1.8 and 4.1.9 versions do not include a client which will work with the new password style.

Here is a good forum link with the same info over and over again Smile
http://forums.mysql.com/read.php?11,6400,6400#msg-6400

I read somewhere this was supposed to be fixed through PHP 4.3.10. I read elsewhere it's MySQL which needs to do the fixing Sad

In order to make these changes effective incase you want to know is, place the my.ini into WINDOWS or WINNT. Then Stop your server and uninstall the service. Re-install the service and restart the server. If this fails to work for you, try stopping your server, uninstalling the service and rebooting. Once back up, reinstall the service and start the server.

You really shouldn't have to uninstall the service but incase it doesn't work thats your next move. Incase that doesn't work, you know the next move. I've got it to work for me and all is like before. Pristine. Good luck!
Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

jedi

Forum User
Newbie
Registered: 01/13/05
Posts: 3
My ini file is the one generated by the Installer. This box has never had MySQL or PHP installed before. It is brand new.

My ini file looks almost identical to yours with the exception of a path or two.

I read the part about old_passwords in a post on some other forum just today. I have not tried that yet. I will try and post results.

Jedi
 Quote

Status: offline

vbgunz

Forum User
Full Member
Registered: 01/24/03
Posts: 169
Alright, here is the last tidbit of info you'll need to know. I've been up on top of this for a while and have been running successfully without problems. Take all of the info I've given you +minus just one thing from it all. Remove "old_passwords" from [client] in the my.ini. Placing that bit in [client] is unapparent at first but trust me, it's bad news.

Remember the command line and entering the following?
Text Formatted Code
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
 

Now in order to achieve that same exact effect without taking advantage of the new hashing mechanism simply enter
Text Formatted Code
SET PASSWORD FOR 'root'@'localhost' = OLD_PASSWORD('password');
 

Until someone steps up and addresses the confusion, this'll probably be the best way to go unless you can build MySQL yourself. Good luck Wink

Victor B. Gonzalez -
http://aeonserv.com
 Quote

Status: offline

jedi

Forum User
Newbie
Registered: 01/13/05
Posts: 3
I've tried all this. Nothing works. Even dumping the whole thing and starting over with a pristine system, nothing.

I here by give up...there has to be an answer out there but I have found none.

Later dudes.
 Quote

All times are EDT. The time is now 06:04 am.

  • Normal Topic
  • Sticky Topic
  • Locked Topic
  • New Post
  • Sticky Topic W/ New Post
  • Locked Topic W/ New Post
  •  View Anonymous Posts
  •  Able to post
  •  Filtered HTML Allowed
  •  Censored Content