Home > Database, Os X, Tips > Installare MySql 5.1.50 su Os X Leopard (PPC)

Installare MySql 5.1.50 su Os X Leopard (PPC)

25 Settembre 2010

Recentemente ho subìto i danni di un fulmine che hanno compromesso un vecchio G4 con tiger: l’alimentatore se n’è andato, e come vuole la tradizione Apple, non è un alimentatore qualunque bensì un particolare alimentatore AcBel creato appositamente per il Quicksilver che deve erogare 28V su un paio di pin per alimentare il monitor ADC.
Ergo, benchè si tratti di oggetti di 8-9 anni fa, il prezzo sale ed in questo caso oscilla (comprese le spese di spedizione) tra gli 80 ed i 120 euro. Non essendo poi così certo che la scheda madre stessa fosse sana, ho preferito non azzardare e ho aquistato per una modica cifra un Mac Pro Dual 2.0 (PowerPc, uno degli ultimi prima dell’avvento di Intel). Unico (forse) payload: non si può installare Snow Leopard (ecco perchè è sceso tanto il prezzo di macchine così perfette), ma bisogna “accontentarsi” di Leopard 10.5.x.

MySql sul G5

MySql sul G5



Fatto questo, mi sono chiesto: perchè non smantellare un vecchio accrocchio Windows 2003 Server la cui unica funzione era di far girare i db mysql dei miei gestionali (oltre a qualcos’altro al sottoscritto, causa dischi scsi che perdevano costantemente il raid)? Ovviamente Os X potrà fare la stessa cosa egregiamente, anzi meglio.
Dal dire al fare… beh già sapete.
Innanzitutto, l’installer di MySql esiste solo per architettura x86, ergo “mi tocca compilare”. Eccomi all’opera con il listato di opeazioni da svolgere.

Scarichiamo i sorgenti:
http://dev.mysql.com/downloads/mysql/
Se non esiste creiamo una cartella /usr/local/src e andiamo ad impostare un po’ di permessi
cd /usr/local
sudo mkdir src
sudo chown adminID src
sudo chgrp admin src
chmod 750 src

Ora andiamo in src e scompattiamo la source
cd src
tar -xvzf ~/Downloads/mysql-5.y.zz.tar.gz (dove y.zz è la versione di MySql)

Ovviamente se il Sig. Safari ha già scompattato il .gz per i cavoli suoi lasciandoci il .tar … il comando è
tar -xvf ~/Downloads/mysql-5.y.zz.tar (dove y.zz è la versione di MySql)

Ora viene il bello: occorre creare il Gruppo e l’Utente per MySql
sudo dscl .
cd Groups
list . PrimaryGroupID
create _mysql
append _mysql RecordName mysql
create _mysql PrimaryGroupID (dove è un numero non in uso della lista vista poco sopra)
create _mysql RealName “MySQL Group”
cd ../Users
list . UniqueID
create _mysql
append _mysql RecordName mysql
create _mysql RealName “MySQL User”
create _mysql UniqueID (dove è un numero non in uso della lista vista poco sopra)
create _mysql PrimaryGroupID

Ora creiamo la shell
create _mysql UserShell /usr/bin/false

# e usciamo
quit

Ora occorre creare la Socket Directory a MySql
cd /var
sudo mkdir mysql
sudo chgrp mysql mysql
sudo chmod 775 mysql

Ora passiamo al Build !!!
cd /usr/local/src/mysql-5.y.zz (dove y.zz è la versione di MySql)

Ma prima di dare le specifiche al compilatore, cosa serve? gcc4.0, of course..
Quindi installiamo il pacchetto xtools.pkg dal dvd di Leopard.

Ora possiamo procedere:
CFLAGS=”-O3 -fno-omit-frame-pointer” CXXFLAGS=”-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti” ./configure –prefix=/usr/local/mysql –with-extra-charsets=complex –enable-thread-safe-client –enable-local-infile –enable-shared –with-unix-socket-path=/var/mysql/mysql.sock –with-charset=latin1 –with-collation=latin1_general_ci –with-mysqld-user=_mysql

# facciamo il Build degli eseguibili
make

# Testiamo il build
cd mysql-test
perl mysql-test-run.pl
#
oppure
perl mysql-test-run.pl –force /* non si ferma se inontra errori

# Creiamo i binaries mysql e la directory del database
sudo mkdir /usr/local/mysql-5.y.zz
# Creiamo un link simbolico
sudo ln -sfhv /usr/local/mysql-5.y.zz /usr/local/mysql
# Copiamo l’installazione sulla directory di default /usr/local/mysql
cd ..
sudo make install
# Copiamo il file di config su /etc e diamo i permessi opportuni
sudo cp support-files/my-medium.cnf /etc/my.cnf
cd /etc
sudo chown my.cnf
sudo chgrp mysql my.cnf
chmod 640 my.cnf

cd /usr/local
sudo chown -RH mysql
sudo chgrp -RH admin mysql
sudo chgrp _mysql mysql
sudo chmod 775 mysql
sudo chmod -h 775 mysql
sudo chgrp -h _mysql mysql
sudo chown -h mysql

# Creiamo la directory del db e inizializziamo le tabelle dei grants
cd mysql
sudo bin/mysql_install_db –user=_mysql

Ora facciamo partire il server del db e vediamo…
cd /usr/local/mysql
sudo -b bin/mysqld_safe

# Diventiamo root
sudo -s
# Andiamo nella dir del db
cd var
ls
# Dumpiamo il log degli errori
cat .err
# Usciamo da root
exit
# Per arrestare il server …
cd ..
bin/mysqladmin -u root -p shutdown

Ora ci siamo quasi, come avete visto è (quasi) un gioco da ragazzi, ma è accettabile “password” come password di root?
Direi di cambiarla:
# Facciamo ripartire il server
sudo -b bin/mysqld_safe
# Logghiamoci as root
mysql -u root mysql
> UPDATE user SET password=password(‘la password che voglio io’) WHERE user=’root’;
> flush privileges;

Con Navicat già possiamo vedere che il tutto funziona, ma… se proviamo da una postazione in LAN ci schiaffa fuori.
Allora:
mysql -u root -p
GRANT ALL ON *.* to ‘root’@’192.168.1.%’ (nel caso la nostra rete sia 192.168.1.x)

Alcuni ritocchi:
Mettiamo le Uitilities MySQL nella shell path
cd
# Creiamo .profile se non esiste
touch .profile
# Editiamo lo script di avvio della shell
nano .profile
# Aggiungiamo il path di MySQL
export PATH=$PATH:/usr/local/mysql/bin

Autostart? Ora riavviamo il G5 e scopriamo che il MySql non parte da sè. Sarà meglio sistemare anche questo aspetto:
# Creare un file com.mysql.mysqld.plist sul desktop
# Ora lo spostiamo nei LuchDaemons e gli diamo i permessi
sudo mv ~/Desktop/com.mysql.mysqld.plist /Library/LaunchDaemons
sudo chown root /Library/LaunchDaemons/com.mysql.mysqld.plist
# Diciamogli di partire all’avvio
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist

Altre opportunità:
Partenza manuale:
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
Stop manuale:
sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysqld.plist
Disinstallazione:
cd ~/src/mysql-5.y.zz
sudo make uninstall
sudo launchctl unload -w /Library/LaunchDaemons/com.mysql.mysqld.plist
sudo rm /Library/LaunchDaemons/com.mysql.mysqld.plist

Categorie:Database, Os X, Tips Tag:
I commenti sono chiusi.