PDA

View Full Version : PRecompiled Binaries for Windows for use with MYSQL 5


Coleshadowblades
06-16-2006, 10:42 AM
Ok here is the Binaries compiled for MYSQL5

http://acashyasrealm.no-ip.org:90/EQEmu-0.7.0-801-MYSQL5.zip

Coleshadowblades
06-16-2006, 07:08 PM
ok dont download those seems i broke the quests Im working on a few crash issues and will have new binaries there shortly

Gameross
06-16-2006, 07:57 PM
I guess the big question is why? Is there some real benefit?

Coleshadowblades
06-16-2006, 09:50 PM
you mean aside from a very prodound increase in speed and stability over mysql4?

gottasummer
06-16-2006, 10:24 PM
This is useful to some who use mysql 5.

I used it on my windows server before i switched everything back over to linux... which my eq server still is not at a point where i can get it to run stabily on linux 8-)

But... as I have said... MySQL 5 is another option, its the newer version of MySQL... I am not ready to upgrade, but if you have already done so, this will help you out.

Gameross
06-16-2006, 10:27 PM
you mean aside from a very prodound increase in speed and stability over mysql4?Are people having stability issues or even speed issues because of mysql4? Hadn't read anything about either issue.

In case ya can't tell, I come from the grass isn't always greener school of computers. Remember Windows ME!

Either case, you should be working with developers to impliment this change and not doing your own thing and splintering Emu developement. Just seems to make sense.

Coleshadowblades
06-16-2006, 10:43 PM
Excuse me but I unlike MOST am sharing what I have learned with the devs if you paid attention to the changelog the upgrade to enable mysql 5 support IS done by one of the devs they however compile for MYSQL4 which means the default binaries DONT work with mysql 5. now let me put it to you in laymans terms mysql five executes queries far faster then 4 4 is about 2 years or so out of date. zones boot far faster and the emu loads astoundingly fast now. I am not splintering anything. Merely providing WORKING binaries for people who WANT to upgrade to mysql 5 because the devs wont/havent provide/ed them. So kindly refrain from throwing accusations at someone trying to actually be HELPFULL to the community unless you can substantially backup your accusations with something more then conjecture.

now I will be updating that download however it requires 3 changes to the database...

you need to :


As shown in latest build changelog
ALTER TABLE spawn2 CHANGE `condition` `_condition` MEDIUMINT(8) UNSIGNED NOT
NULL DEFAULT '0';

needed edits found durring testing
ALTER TABLE accounts CHANGE `packencrypt` `packencrypt` BLOB NULL;
ALTER TABLE character_ CHANGE `extprofile` `extprofile` BLOB NULL;


(Which you should do ANYWAY when the field isnt being given a value anyway just as a coding standard)

~~~PLEASE NOTE!!!~~~ SPECIAL THANKS TO SESMAR For helping me get the binaries compiled!

I will also be putting the updated source files (Since the devs have yet to take unused file references out of the solution file) so people new to the emu and dont know that the files arent even used but present in the project can compile easily

Coleshadowblades
06-16-2006, 10:57 PM
Ok so 801 doesnt exactally work on windows so Sesmar and I (Mostly sesmar) Applied the mysql patch provided by Aza and did some tweaking of our own (Sesmar mostly) And came up with a MYSql 5.xx version of the binaries for windows users please note in order for new account and character correctiosn the mysql database edits outlined above must be implemented in order to work...

Here is the binaries

http://acashyasrealm.no-ip.org:90/EQEmu-0.7.0-800-mysql5.zip

there may be bugs we are still working on this but so far it seems stable and VERY VERY Fast when used with mysql 5.22

THANKS Sesmar for the assistance in the c++

EDIT: Also please backup your database/databases with mysql admin or some other tool before isntalling mysql 5 then import/restore the backup

sesmar
06-17-2006, 01:59 AM
Either case, you should be working with developers to impliment this change and not doing your own thing and splintering Emu developement. Just seems to make sense.

The devs have released the newest version of the emu (0.7.0-801) to be compatable with MySql 5. However, after I downloaded the binaries and upgraded to MySql 5 (since I have been waiting for an offical release for this) I was getting client not compatable errors. Figuring this may have something to do with it the precompiled binaries having been compiled on a machine still using the MySql 4.0.x include and lib files I grabed the source and recomplied it, as it was, with the MySql 5 lib and include files. After doing this the server booted right up for me. Only problem was once I logged in and tried to cast a spell it would crash everytime.

So all I did was grab the 800 version source and made the few minor changes to the source (mostly changing the any reference to condition in sql statements to _condidtion) to make it compatable with MySql 5 as well. I recompiled the server booted it up logged in and it works great. I could not get the Zone to output debug information for some reason so I was unable to see what was causing the crashes. This is something I am working on now.

aza77
06-17-2006, 03:34 AM
looks like the problem just appears at windows servers ... i tried 801 with mysql 5.0.20 and 5.0.22 and it works without problems @linux

Coleshadowblades
06-17-2006, 07:10 AM
I fail to see how it can be a windows specific error to be honest... Seems alot of the bugs in the code get pawned off as a windows error simply cause noone wants to just plain fix them all around.

See here are a few issues ive noticed...

Dirty code

all the devs aint on the same page with the style of coding to be employed thereby all doing their own thing and this shows in the code

instead of coding to work on both types of syste (windows and linux) The devs seem to only wish to develop based on linux.

Now when ya got people like sesmar (And im learning pretty quick thanks to him) Who do stuff for windows instead of a thank you for getting it working we get accused of splintering the project... Got news for you i prefer linux however im smart enough to know itll NEVER be as used nor popular as windows

gottasummer
06-17-2006, 07:23 AM
I can see how it is a precompiled binary specific error.

The MySQL includes and libraries that are in this build must (well, I don't know about must... but SHOULD) be the same as those that are in use on that system.

If I build EQEmu with MySQL version X.XX, the machine I put it on should also run MySQL version X.XX

Coleshadowblades
06-17-2006, 07:27 AM
I said WINDOWS specific meaning everyone says "oh thats a windows only error" instead of actually fixing it they pawn it off on windows and just leave it be lol

Coleshadowblades
06-17-2006, 08:33 AM
this post is precisly why people dont share their fixes and such with the community... I am removing the binaries can a mod please delete the posts reguarding getting it to work with mysql 5 made by me please?

EDIT the binaries are no longer available for download

WildcardX
06-17-2006, 09:41 AM
I was gonna post the following SQL changes needed for MySQL 5 support, but I see two of the SQL lines are already posted here... Anyway, you need to do the following SQL:

alter table account change packencrypt packencrypt blob NULL;
alter table character_ change extprofile extprofile blob NULL;
alter table player_corpses change data data blob NULL;
alter table player_corpses_backup change data data blob NULL;

WildcardX
06-17-2006, 09:45 AM
Also note... One reason why the unix/linux peeps may be saying "looks like it's a problem on Windows servers" is probably because when they loaded MySQL 5 or already had it loaded, it probably doesn't run in strict mode, but strict mode is on by default for a windows installation. Strict mode ensures you are using only proper MySQL 5 commands. On linux and unix installations or any other platform with this turned off, MySQL 5 allows you to "fudge" your commands. It's a bad habbit really and strict mode really should be turned on, in my opinion.

fireclav
06-18-2006, 02:39 AM
just to clarify, which binaries do i dl (using windows). saw a few in here and didnt wana dl the wrong thing and get my server all messed up

Coleshadowblades
06-18-2006, 03:51 AM
I removed the binaries from My server I will replace them shortly thanks Wildcardx for the other mysql alterations I havent found those bugs yet. Yes you are quite correct about why they are so quick to point out its a windows only problem , linux mysql is mysql 5 in non strict mode which allows for dirtier lazier coding of the mysql commands, such as not making fields that have no value untill something happens null. for instance. Now here is the other problem the devs haventupdated the solution files or anything for compilation on windows in quite some time there are files that are missing and not used anymore that are left in the proects and so forth. What the devs ar eneglecting to understand is the main userbase uses WINDOWS MOST people do. and if they are going to offer windows binaries they need to dev for windows compatability as well...

fathernitwit
06-18-2006, 08:54 AM
The official automatic builds will still only support mysql 4.0 because the mysql runtime libraries are not binary compatible, and as such a binary built against the mysql 4.0 libraries will not work with a mysql 5.0 (or even 4.1 it seems) runtime... however I believe that you COULD install the 4.0 client libraries and the 5.0 server, get eqemu to use the 4.0 client, and connect to the 5.0 server (just a guess)... so far, I havent seen any concrete evidence that 4.1 or 5.0 is any better for eqemu, so until that happens (or 4.0 becomes too hard to obtain), the auto builds will stay on 4.0.

As for the "it is a windows thing" statements, the fact of that matter is that Doodman and I use linux for our servers and development, and as such, do not test the code on windows. Occasionally, I spend some time to build on windows and do basic sanity tests, but I am neither set up nor willing to do extensive testing on windows. We welcome any contributions made by the community to improve windows compatibility.

Please do not take such a negative attitude in the future towards the work we do here. Talking crap about us or the code does nothing but aggrivate us, help is appriciated, criticism without solution provided is not.

WildcardX
06-18-2006, 10:03 AM
Please don't get me wrong FNW, I am not critizing you or doodman. I am just pointing out a fact that the installation of MySQL 5 for a Windows platform has strict mode turned on and that I believe it is just the opposite for other platforms such as linux, and thus, that is why some people see this particular problem has a "windows" problem. Personally, I could care less what people use to develop with. They are all tools, in my view.

Anyway, I'm not critizing you or doodman or anyone else. All I am saying is the installation is different depending on your platform and that, in my opinion, I favor the use of strict mode in MySQL 5 to enforce proper MySQL 5 command syntax. Again, just my opinion and your milage may vary.

WildcardX
06-18-2006, 10:19 AM
As for the which version of MySQL to support dilema, right now it doesn't take much to get the emulator to use MySQL 4.1 or MySQL 5.0. For MySQL 5.0, the only real code change needed was to change the queries that referenced that "condition" column to "_condition" instead. Other than that, it was just a matter of not setting text or blob types to any Default values in the database script and then all you have to do is to compile while referencing the correct MySQL libs.

I agree for now the official builds should go on to support MySQL 4.0.26. But as coding goes forth, I know I'll continue to use MySQL 5.0 now so if/when I see any other code that is too 4.0.26 specific to function on 4.1 or 5.0, I'll not it and I hope you or doodman will use that code so the codebase itself can be used for any MySQL version as long as the server operator does the compiling themselves.

fathernitwit
06-18-2006, 10:34 AM
my comments above were not directed at you.

Further, yes, the goal is to keep the code base mysql-agnostic for people compiling their own version, so please continue to help us keep up with the newer versions (since we will not likely be using them ourselves) as long as the changes continue to be backwards compatible.

Coleshadowblades
06-18-2006, 01:31 PM
Well I was under the impression that this was open source and therefore was open to constructive criticisim ( Such as keeping the solution files up to date and the mysql structures consistant with standard coding practices) My comments were neither incorrect nor inflamatory merely oppinions based on what ive been doing and reading and tinkering with. however the fact that when people do contribute tot he community they usually get flamed or told they are splintering stuff is something you should address since we are attempting to HELP the community get and stay up to date i would think that some would be appreciative especially since as stated you and doodman and the other contributors dont use windows for development i would think that people who are willign to test and work with the windows compatability and later mysql compatability would be welcome even appreciated.

as a side note under the zone project in visual studio or visual c++ Express you need to remove the following from the project to avoid fatal file not found errors...

EQChatPacket.cpp
EQLoginPacket.cpp
EQMailPacket.cpp
EQWorldPacket.cpp
EQZonePacket.cpp

These files are no longer used but the Server.sln file hasnt been updated to reflect this yet. Once i get the souce zipped up and so forth I will post a link to an updated zip of the source...

johane
06-18-2006, 02:33 PM
I said WINDOWS specific meaning everyone says "oh thats a windows only error" instead of actually fixing it they pawn it off on windows and just leave it be lol


I don't recall the exact fix, but this is probably due to the changes in how case is handled in table and field names that happen in MySQL 5. The Windows bit is due to Windows being ^&%*&%* about case handling in general.

There's a setting you can use in my.conf to use "old style" case handling for Windows machines. Look it up.

There's also new string handling functions that should be used, but I can't recall exactly what they are. Most people I know just don't let Windows try to be a server that runs MySQL....

Note that this is not intended to be a flame of any kind. But that's probably why you've got the error.

mattmeck
06-18-2006, 02:52 PM
The flame war stops now, I dont care who you are or what you have done.

Stop now, you want to flame take it to PM's.

Belfedia
06-19-2006, 01:06 AM
Ref:Mysql 4.11a for Fathernitwit

Working fine with emulation (compiling and more) on last debian sarge.
You just need to use old password method in mysql config :)

Ref:Coleshadowblades

I can understand people running on windows will want a working emulation like other on linux BUT i don't think it was more easy to run linux version, perhaps just linux user are more skilled in computer and it was more easy to make it run ? (i'm not skilled !!! :p ).

I'm not a dev, i'm not a database builder, i have make server on windows (first) and linux (now) but when i ask something since 1 year i'm rarely "flamed" ?
I just try to understand myself, read the forum, and ask when i don't understand.
If ear someone say "read the docs" or "use search function" is a flame, of course flame is every day :( But i think flame is more expressive and more impolite.

Now i'm trying to help and sometimes when i'm tired, i'm flame (like you say) some questions... i'm trying to change my manner, but sometimes I crack... like many people who helping in eqemu...

Ref: Mysql4.X vs Mysql 5.0

That's very important ? we can find easy mysql 4.X version, Mysql 5.0 is very better ? and why it is ? for user or devs ? Anyone can explain difference ? :)

I think if it was just a dev issue, devs must be choose mysql version, no ?

sesmar
06-19-2006, 05:16 AM
Also in order for Zone to build with Perl enabled I have to add the these files to the Zone project everytime.

perlpacket.cpp
perl_perlpacket.cpp

I hope this helps some.

Angelox
06-19-2006, 07:05 AM
Ref:Mysql 4.11a for Fathernitwit

Working fine with emulation (compiling and more) on last debian sarge.
You just need to use old password method in mysql config :)

Ref:Coleshadowblades

I can understand people running on windows will want a working emulation like other on linux BUT i don't think it was more easy to run linux version, perhaps just linux user are more skilled in computer and it was more easy to make it run ? (i'm not skilled !!! :p ).

I'm not a dev, i'm not a database builder, i have make server on windows (first) and linux (now) but when i ask something since 1 year i'm rarely "flamed" ?
I just try to understand myself, read the forum, and ask when i don't understand.
If ear someone say "read the docs" or "use search function" is a flame, of course flame is every day :( But i think flame is more expressive and more impolite.

Now i'm trying to help and sometimes when i'm tired, i'm flame (like you say) some questions... i'm trying to change my manner, but sometimes I crack... like many people who helping in eqemu...

Ref: Mysql4.X vs Mysql 5.0

That's very important ? we can find easy mysql 4.X version, Mysql 5.0 is very better ? and why it is ? for user or devs ? Anyone can explain difference ? :)

I think if it was just a dev issue, devs must be choose mysql version, no ?

For me, compiling the source was much easier under Linux than under windows - I tried two different versions of MS VS, last one was 2005 proffesional - and the first thing i would get were the Microsoft version errors - then there were other errors, errors with the zlib files, and with the SQL lib files. I was manually moving files into the MSVC bin directory and eliminating errors, but eventually there were a few that stayed. One was the MS version errors.
When I tried Linux, I just had to install the c++ libs, it compiled on the first try. The executables ran fine, but I ran into another problem which was (believe it or not), couldn't find login server.
I will try again one of these days, maybe you can help me.