MySQL: Difference between revisions
Brian Wilson (talk | contribs) |
Brian Wilson (talk | contribs) |
||
Line 10: | Line 10: | ||
2017-08-27 today I created systemctl service for MySQL on bellman, see /lib/systemd/system/docker-mysql.service | 2017-08-27 today I created systemctl service for MySQL on bellman, see /lib/systemd/system/docker-mysql.service | ||
Notes: The local hostname does not matter because we publish port 3306, so the mysql service just looks like | |||
it's running on localhost. The link created by "--link db" in owncloud uses the name and the service there | |||
will also appear on localhost port 3306 | |||
docker run -d --hostname=db --name=db | I am using the official mariadb docker, during testing I did this | ||
docker run -d --hostname=db --name=db -p 3306:3306 \ | |||
-v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=''SECRET'' mariadb:latest | -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=''SECRET'' mariadb:latest | ||
Revision as of 17:50, 28 August 2017
Notes on moving MySQL (it was actually MariaDB on Debian) into a Docker container.
Back up databases
cd /green/BACKUPS/bellman_mysql for db in mysql asterisk owncloud yaris; do mysqldump -u root $db > $db.sql; done
Dockerize
2017-08-27 today I created systemctl service for MySQL on bellman, see /lib/systemd/system/docker-mysql.service
Notes: The local hostname does not matter because we publish port 3306, so the mysql service just looks like it's running on localhost. The link created by "--link db" in owncloud uses the name and the service there will also appear on localhost port 3306
I am using the official mariadb docker, during testing I did this
docker run -d --hostname=db --name=db -p 3306:3306 \ -v /var/lib/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=SECRET mariadb:latest
I named it 'db' and gave it a hostname of 'db'. This allows linking with other databases by name and access from the host via the hostname and I can see it worked with
docker exec -it db mysql -u root -p mysql select * from db;
I have to allow remote connections to the database so that asterisk can continue to use it. Likewise owncloud
GRANT SELECT,INSERT,UPDATE,DELETE ON asterisk.* to asterisk@'%' IDENTIFIED BY 'SECRET'; GRANT ALL ON owncloud.* to owncloud@'%' IDENTIFIED BY 'SECRET'; FLUSH PRIVILEGES;
You have to edit /etc/mysql/debian.cnf and my.cnf to change from connecting via a socket to protocol=tcp. You should be able to connect remotely with
mysql -u asterisk -p asterisk
You have to edit /etc/odbc.ini to add Protocol = TCP
After it's running then you can delete the server package from the host
apt-get remove mysql-server