Reverting to previous ports - mysql5

Ryan Schmidt ryandesign at macports.org
Mon Jun 8 11:27:34 PDT 2009


On Jun 8, 2009, at 08:55, Chris Janton wrote:

> On 2009-06-07 , at 13:17 , Ryan Schmidt wrote:
>
>>> This is on my 10.3 system.
>>>
>>> I unfortunately installed mysql5-server on my 10.3.9 system after  
>>> getting an "obsolete +server" message.
>>>
>>> My startup files have become confused.
>>
>> Sorry about that. I did not test on 10.3. I can try to do so in a  
>> few days. What error messages are you encountering?
>
> admin at x:admin:133 $ sudo port upgrade outdated
> --->  Fetching mysql5
> --->  Attempting to fetch mysql-5.0.82.tar.gz from http:// 
> mysql.mirrors.pair.com/Downloads/MySQL-5.0/
> --->  Verifying checksum(s) for mysql5
> --->  Extracting mysql5
> --->  Applying patches to mysql5
> --->  Configuring mysql5
> The +server variant is obsolete. Please install the mysql5-server  
> port instead.
> --->  Building mysql5
> --->  Staging mysql5 into destroot
> --->  Deactivating mysql5 @5.0.81_0+server
> --->  Installing mysql5 @5.0.82_0+server
> --->  Activating mysql5 @5.0.82_0+server
> --->  Cleaning mysql5
> admin at x:admin:134 $
>
> at this point I can't "talk" to the previous version of mysql5  
> using mysql or mysqladmin...
>
> admin at x:mysql5:162 $ mysql -u face -p
> Enter password:
> ERROR 1251: Client does not support authentication protocol  
> requested by server; consider upgrading MySQL client
> admin at x:mysql5:163 $ ps -axww | grep sql
> 21334 std  S      0:00.01 sh /opt/local/bin/mysqld_safe --datadir=/ 
> var/mysql --pid-file=/var/mysql/FOO.pid
> 21372 std  S      0:07.13 /opt/local/libexec/mysqld --basedir=/opt/ 
> local --datadir=/var/mysql --user=mysql --pid-file=/var/mysql/ 
> FOO.pid --port=3306 --socket=/tmp/mysql.sock
> 28761 std  R+     0:00.00 grep sql
>
> There is no way to stop/start the old MySQL5 since the startup item  
> is gone...
>
> admin at x:mysql5:166 $ ls /Library/StartupItems
> apache2/

Well, you should stop the old version of MySQL (or any server port)  
before installing the new version. To minimize downtime you can

sudo port install mysql5

which will build and install the new version (which is what should  
take the bulk of the time) but will fail to activate it because the  
old version is still active. Then you can

* turn the old MySQL off (if you were on 10.4+ you would use "sudo  
port unload mysql5")
* deactivate the old mysql5
* activate the new mysql5 and mysql5-server
* start the new MySQL ("sudo port load mysql5-server" on 10.4+)

Since < 10.4 doesn't have launchd and systemstarter doesn't have  
dynamic starting and stopping of services you either kill and start  
the processes manually or restart the computer after editing your  
hostconfig.


> OK - so I "kill"ed the old mysql5. Still have no working command  
> line tools yet...
>
> admin at x:mysql5:169 $ mysql -u face -p
> Enter password:
> ERROR 1251: Client does not support authentication protocol  
> requested by server; consider upgrading MySQL client

Hmm. I haven't checked the changelog. Not sure if something about the  
authentication protocol changed in this version.


> admin at x:admin:134 $ sudo port install mysql5-server
> --->  Fetching mysql5-server
> --->  Verifying checksum(s) for mysql5-server
> --->  Extracting mysql5-server
> --->  Configuring mysql5-server
> --->  Building mysql5-server
> --->  Staging mysql5-server into destroot
> --->  Creating systemstarter control script
> ###########################################################
> # A startup item has been generated that will aid in
> # starting mysql5-server with SystemStarter. It is disabled
> # by default. Add the following line to /etc/hostconfig
> # or /opt/local/etc/rc.conf to start it at startup:
> #
> # MYSQL5-SERVER=-YES-
> ###########################################################
> --->  Installing mysql5-server @5.0.82_0
> ******************************************************
> * In order to setup the database, you might want to run
> * sudo -u mysql mysql_install_db5
> * if this is a new install
> ******************************************************
> --->  Activating mysql5-server @5.0.82_0
> --->  Cleaning mysql5-server
> admin at x:admin:135 $
>
> add the MYSQL5-SERVER line to /etc/hostconfig
>
> now we try to start mysql...
>
> admin at x:admin:135 $ sudo SystemStarter start mysql5-server
> Welcome to Macintosh.
> /System/Library/StartupItems/SecurityServer/SecurityServer: line  
> 41: MYSQL5-SERVER=-YES~: command not found
> /System/Library/StartupItems/Network/Network: line 41: MYSQL5- 
> SERVER=-YES~: command not found
> Starting SecurityServer
> Initializing network
> /System/Library/StartupItems/Disks/Disks: line 41: MYSQL5-SERVER=- 
> YES~: command not found
> Checking disks
> /System/Library/StartupItems/NIS/NIS: line 41: MYSQL5-SERVER=-YES~:  
> command not found
> /System/Library/StartupItems/NFS/NFS: line 41: MYSQL5-SERVER=-YES~:  
> command not found
> lockfile: Sorry, giving up on "/var/run/NFS.StartupItem"
> /Library/StartupItems/mysql5-server/mysql5-server: line 41: MYSQL5- 
> SERVER=-YES~: command not found
> Startup complete.
> Hangup
> admin at x:admin:136 $
>
> I copied/pasted the MYSQL5-SERVER line from the terminal.
> This is copied/pasted from /etc/hostconfig
>
>  MYSQL5-SERVER=-YES-
>
> For the time being I have manually started mysql on the 10.3 system  
> and will hand start if we have to reboot.

I am guessing it is using the port name as the key for the hostconfig  
file, and that the hostconfig file does not support hyphens in its  
variable names. So that would be a problem. Perhaps I can tell it to  
continue to use the key "mysql5" ("startupitem.name mysql5"?) You can  
try adding that to the mysql5-server port already if you want, but I  
will also test when I'm back at my Panther machine tonight.



More information about the macports-users mailing list