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