diff --git a/etc/mariadb/MariadDB.md b/etc/mariadb/MariadDB.md new file mode 100644 index 0000000000000000000000000000000000000000..17b6a44b0e04736dbc45cd01eded48e1be584920 --- /dev/null +++ b/etc/mariadb/MariadDB.md @@ -0,0 +1,51 @@ +# MariaDB + +## reset unknown root password + +MariaDB-Service + + systemctl stop mariadb.service + mysqld_safe --skip-grant-tables --skip-networking & + +MariaDB + + mysql -u root + mysql> use mysql; + mysql> select Host,User,Password,plugin,authentication_string from user; + mysql> update user set password=PASSWORD("mysql") where User='root'; + mysql> update user set plugin='' where User='root'; + mysql> flush privileges; + mysql> exit + +MariaDB-Service + + mysqladmin shutdown -u root -p + systemctl start mariadb.service + +## add local user + + mysql -u root -p mysql + mysql> create database tw; + mysql> GRANT ALL PRIVILEGES ON *.* TO 'tw'@'localhost' IDENTIFIED BY 'Password' WITH GRANT OPTION; + mysql> GRANT ALL PRIVILEGES ON tw.* TO 'tw'@'localhost' IDENTIFIED BY 'Password' WITH GRANT OPTION; + mysql> flush privileges; + mysql> exit + mysql -u tw -p tw + mysql> show databases; + mysql> SELECT USER(), CURRENT_USER(); + mysql> exit + sudo systemctl restart mariadb.service + +## add user covid19data + mysql -u root -p mysql + mysql> create database covid19data; + mysql> GRANT ALL PRIVILEGES ON *.* TO 'covid19data'@'localhost' IDENTIFIED BY 'covid19datapwd'; + mysql> GRANT ALL PRIVILEGES ON covid19data.* TO 'covid19data'@'localhost' IDENTIFIED BY 'covid19datapwd'; + mysql> flush privileges; + mysql> exit + mysql -u covid19data -p covid19data + mysql> show databases; + mysql> SELECT USER(), CURRENT_USER(); + mysql> exit + sudo systemctl restart mariadb.service + \ No newline at end of file diff --git a/etc/mariadb/create_user_and_db.sql b/etc/mariadb/create_user_and_db.sql new file mode 100644 index 0000000000000000000000000000000000000000..db7275bf95351df3d9c61f1043318eccc4bc8aac --- /dev/null +++ b/etc/mariadb/create_user_and_db.sql @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:555b9ef8066aa9b17eee3793d303ac7a0225ef721212eb6de880c6a9cbdfe7d7 +size 50 diff --git a/requirements/dev.in b/requirements/dev.in index 99803060ae9e39ff8bee30b5b15b4b5228e66118..868d8a31602f9acb27d544b531688a48949aa120 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -9,6 +9,7 @@ Flask-Login==0.5.0 SQLAlchemy>=1.4.5 celery[redis]>=5.0.5 psycopg2-binary>=2.8.6 +mysqlclient==2.0.3 wget>=3.2 pyecharts>=1.9.0 pyecharts-extras>=0.0.5 diff --git a/src/config.py b/src/config.py index 9fc4dff014590e4e93978a1aefbefed0a829544f..bdf375660b5ad837f027975660c8b23d602f7b5e 100644 --- a/src/config.py +++ b/src/config.py @@ -5,10 +5,10 @@ CELERY_CONF_WORKER_SEND_TASK_EVENTS = True CELERY_CONF_TASK_SEND_SENT_EVENT = True CELERY_LOG_REDIRECT = '1' CELERY_LOG_REDIRECT_LEVEL = 'INFO' -SQLALCHEMY_POSTGRES_USER = 'covid19data' -SQLALCHEMY_POSTGRES_PW = 'covid19datapwd' -SQLALCHEMY_POSTGRES_URL = 'localhost' -SQLALCHEMY_POSTGRES_DB = 'covid19data' +SQLALCHEMY_DATABASE_USER = 'covid19data' +SQLALCHEMY_DATABASE_PW = 'covid19datapwd' +SQLALCHEMY_DATABASE_HOST = 'localhost' +SQLALCHEMY_DATABASE_DB = 'covid19data' SQLALCHEMY_ITEMS_PER_PAGE = 10 SQLALCHEMY_TRACK_MODIFICATIONS = True FLASK_ADMIN_SWATCH = 'superhero' diff --git a/src/database.py b/src/database.py index 8deaf8440213051517d80801f6e42f9863751c5b..e9e7a88e7f429fe7b1360e589bac19329425e20c 100644 --- a/src/database.py +++ b/src/database.py @@ -24,12 +24,17 @@ def create_app(): login_manager.login_view = 'usr.login' login_manager.init_app(my_app) my_app.config.from_object("config") - my_db_url = 'postgresql+psycopg2://{user}:{pw}@{url}/{db}'.format( - user=my_app.config['SQLALCHEMY_POSTGRES_USER'], - pw=my_app.config['SQLALCHEMY_POSTGRES_PW'], - url=my_app.config['SQLALCHEMY_POSTGRES_URL'], - db=my_app.config['SQLALCHEMY_POSTGRES_DB']) - my_app.config['SQLALCHEMY_DATABASE_URI'] = my_db_url + my_db_url_mysql = "mysql + mysqldb://{user}:{pw}@{url}/{db}".format( + user=my_app.config['SQLALCHEMY_DATABASE_USER'], + pw=my_app.config['SQLALCHEMY_DATABASE_PW'], + url=my_app.config['SQLALCHEMY_DATABASE_HOST'], + db=my_app.config['SQLALCHEMY_DATABASE_DB']) + my_db_url_postgresql = 'postgresql+psycopg2://{user}:{pw}@{url}/{db}'.format( + user=my_app.config['SQLALCHEMY_DATABASE_USER'], + pw=my_app.config['SQLALCHEMY_DATABASE_PW'], + url=my_app.config['SQLALCHEMY_DATABASE_HOST'], + db=my_app.config['SQLALCHEMY_DATABASE_DB']) + my_app.config['SQLALCHEMY_DATABASE_URI'] = my_db_url_postgresql my_app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # silence the deprecation warning my_app.config['FLASK_ADMIN_SWATCH'] = 'superhero' # cache.init_app(app)