En aquesta entrada hi aniré recopilant les comandes que més utilitzi relacionades amb la base de dades MySQL.
Part de les idees han estat extretes d’(aquest blog)[https://saisuman.org/blog/chromium-in-wsl2].
Versions
MySQL 8.0.33
Ubuntu 20.04
WSL
Una cosa important és systemd
està suportat per WSL. Sinó utilitzem systemd
haurem d’executar la base de dades com a servei i crec que és més engorrós ja que per defecte l’Ubuntu natiu l’utilitza i requereix menys configuració per disposar de les mateixes funcionalitats.
Per utilitzar systemd
simplement agreguem la següent configuració al fitxer /etc/wsl.conf
.
1
2
[boot]
systemd=true
Un cop aplicada la configuració reiniciem les instàncies de WSL executant wsl.exe --shutdown
des de Powershell. Aquest link ho explica millor.
MySQL
Desinstalar
- Desinstal·lem MySQL
- Esborrem els directoris relacionats
- Eliminem dependències
- Verifiquem que s’hagi eliminat del sistema completament i que partim d’un estat net
- Reiniciem
1
2
3
4
5
6
sudo apt-get remove --purge *mysql* &&
sudo apt-get remove --purge *mariadb* &&
sudo apt remove mysql-client mysql-server -y &&
sudo rm -rf /etc/mysql /var/lib/mysql &&
sudo apt-get autoremove &&
dpkg -l | grep mysql
Instalar
- Actualitzem repositori
- Instalem servidor MySQL
- (RoR) Instalem llibreria per la gema de connexió
- Iniciem el servei
- Verifiquem que s’està executant correctament
1
2
3
4
5
6
sudo apt update &&
sudo apt install mysql-server &&
sudo apt-get install libmysqlclient-dev &&
mysql --version &&
sudo service mysql start &&
sudo service mysql status
Si s’han seguit els passos correctament ja hauríem de tenir el MySQL instal·lat i executant-se.
Configurar
Falta executar el mysql_secure_installation
però abans cal establir cal que s’estableixi una contrasenya per defecte en el root perquè per defecte en Ubuntu aquest no en té hi quan te la demani entrarà en bucle i hauràs de reiniciar el terminal.
1
2
sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
A partir d’aquí si estem en Ubuntu en Linux natiu no hi hauria d’haver problema però al estar en un entorn virtualitzat hi ha un error: la comanda mysql
no funciona si no s’especifica el host explicítament o es crida amb permisos de superusuari. Suposo que en un futur no caldrà però en el meu cas he hagut d’indicar-li el host explicítament.
1
mysql_secure_installation -h 127.0.0.1
Crear usuari
Finalment anem a crear l’usuari mysql que utilitzarem per connectar-nos-hi des d’un servei extern.
1
2
3
4
sudo mysql
mysql> CREATE USER 'atp'@'localhost' IDENTIFIED BY 'new_password';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'atp'@'localhost';
mysql> FLUSH PRIVILEGES;
En teoria ja hauria d’estar instal·lat i configurat correctament. Cal tenir en compte que rails no s’executa en superusuari, i per tant se li haurà d’indicar el host a la comanda que utilizi per connectar-s’hi.