/ Home

MySQL Docker

Note: Mysql Docker on Mac and Ubuntu

Run MySQL container

docker pull mysql

docker run -d --name=mysql1 -e MYSQL_ROOT_PASSWORD=’mypassword’ -v /storage/mysql1/mysql-datadir:/var/lib/mysql mysql

docker run -d --name=mysql2 -e MYSQL_ROOT_PASSWORD=’mypassword’ -v /storage/mysql2/mysql-datadir:/var/lib/mysql mysql

Mysql Setup - Mac - Docker:

docker run -p 3306:3306 --name kactmysql -e MYSQL_ROOT_PASSWORD=kaipulla -d mysql:latest

mysql -uroot -pkaipulla -h127.0.0.1 -P3306

If any firewall issue, try this on Mac:

sudo vi /usr/local/etc/my.cnf
bind-address = 0.0.0.0
brew services restart mysql

Create DB and Table

Create database kactdb;
GRANT ALL PRIVILEGES ON kactdb.* TO 'root'@'localhost';
flush privileges;
use kactdb;

CREATE TABLE CITY(
  ID SERIAL PRIMARY KEY,
	NAME VARCHAR(50),
	STATE VARCHAR(50),
	COUNTRY VARCHAR(50)
);

INSERT INTO CITY (NAME, STATE, COUNTRY) VALUES ('Toronto', 'Ontario', 'Canada');

SELECT * FROM CITY;
Ref:

MySQL Firewall Enable in MacOS

Test code in Python

import MySQLdb

db = MySQLdb.connect(host="127.0.0.1", 
                     user="root",      
                     passwd="kaipulla",
                     db="kactdb")     

cur = db.cursor()

cur.execute("SELECT * FROM CITY")

counter = 0
for row in cur.fetchall():
    try:
        counter = counter + 1
        title = str(row[2])
        company = str(row[3])
        print(str(counter) + " - " +  title + " - " + company)
    except ValueError as e:
        print('Error')

db.close()
Credits :