在CentOS7安裝Python3.6環(huán)境,部署superset,并將基礎(chǔ)表改為MySQL

1. 安裝MySQL數(shù)據(jù)庫

1.1. 更新操作系統(tǒng)

yum update #更新操作系統(tǒng)

1.2. 檢查系統(tǒng)是否安裝了mariadb,如果安裝了mariadb則需要先卸載

yum list installed | grep mariadb #查看mariadb的安裝狀態(tài)
yum -y remove mariadb* #卸載mariadb

1.3. 建立目錄并下載MySQL源包

cd /usr/local/src
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

1.4 安裝MySQL源并通過yum安裝MySQL數(shù)據(jù)庫

rpm -ivh mysql57-community-release-el7-11.noarch.rpm
yum install mysql-community-server

1.5 重新開啟MySQL

systemctl start mysqld #啟動(dòng)MySQL
Mysql -uroot -p #登錄MySQL

剛安裝的 MySQL 是沒有密碼的,這時(shí)會(huì)出現(xiàn):
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
所以需要先停止數(shù)據(jù)庫,然后以不檢查權(quán)限的語句啟動(dòng)MySQL

1.6 關(guān)閉MySQL并以不檢查權(quán)限的方式重新啟動(dòng)MySQL

systemctl stop mysqld #停止數(shù)據(jù)庫
mysqld --user=root --skip-grant-tables &;  #以不檢查權(quán)限的語句啟動(dòng)MySQL
Mysql -uroot -p #登錄數(shù)據(jù)庫

1.7 更新數(shù)據(jù)庫密碼

UPDATE mysql.user SET Password=PASSWORD('123456') where USER='root'; #MySQL 5.7 以下版本
UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root'; #MySQL 5.7 版本
flush privileges; #刷新
exit; #退出

1.8 修改CentOS防火墻配置以便MySQL和Superset可以進(jìn)行遠(yuǎn)程連接

firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp
firewall-cmd --permanent --zone=public --add-port=8088/udp
firewall-cmd --permanent --zone=public --add-port=8088/tcp
firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-service=mysql
systemctl restart firewalld

1.9 登錄數(shù)據(jù)庫開啟遠(yuǎn)程訪問

mysql -uroot -p #登錄數(shù)據(jù)庫
grant all privileges on *.* to root@"%" identified by '0'; #進(jìn)行開啟遠(yuǎn)程訪問的操作

由于密碼過于簡單,所以會(huì)報(bào)錯(cuò)
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.'
需要先更新密碼,再進(jìn)行g(shù)rant all的操作

SET PASSWORD = PASSWORD(‘密碼’); #更新數(shù)據(jù)庫密碼
grant all privileges on *.* to root@"%" identified by '0';  #進(jìn)行開啟遠(yuǎn)程訪問的操作
flush privileges;
exit;

1.10 設(shè)置MySQL開機(jī)啟動(dòng)

systemctl enable mysqld

由于MySQL默認(rèn)編碼格式為latin1,中文的存儲(chǔ)會(huì)變成問號(hào),需要修改配置文件,將其改為utf8mb4

1.11 修改MySQL默認(rèn)編碼格式

systemctl stop mysqld #停止MySQL
vim /etc/my.cnf #編輯MySQL配置文件

在my.cnf文件中加入下面內(nèi)容

[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4

1.12 重新啟動(dòng)MySQL

systemctl start mysqld #啟動(dòng)MySQL
systemctl status mysqld #檢查MySQL服務(wù)狀態(tài)

2. 安裝Python3、PIP和VirtualENV

2.1 為安裝python3環(huán)境準(zhǔn)備所需的包

yum groupinstall "Development tools"
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2.2 安裝python3環(huán)境

cd /usr/local/src #進(jìn)入源碼文件夾
wget www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz #下載python文件
tar xf Python-3.6.6.tgz #解壓縮
cd Python-3.6.6 #進(jìn)入python 文件夾
./configure #配置
make && make install #安裝

2.3 安裝EPEL源并安裝superset必備的包

yum install epel-release #安裝epel源
yum install mysql-devel #安裝MySQL開發(fā)包,屬于pymysqlclient依賴
yum install gcc gcc-c++ libffi-devel python-devel python-wheel openssl-devel libsasl2-devel openldap-devel #安裝依賴包

2.4 安裝python3的virtualenv并建立superset的env

pip3 install virtualenv #安裝virtualenv
python3 -m venv superset-py3 #建立superset的venv
source superset-py3/bin/activate #激活superset的venv

3. 安裝Superset

3.1 在env中安裝superset

pip3 install --upgrade pip #升級(jí)pip
pip3 install --upgrade setuptools pip #升級(jí)setuptools
pip3 install superset #安裝superset

3.2 安裝superset數(shù)據(jù)庫包

pip3 install mysqlclient #安裝mysql連接包
pip3 install pymssql #安裝mssql連接包

3.3 配置superset

vim superset-py3/lib/python3.6/site-packages/superset/config.py

修改superset配置文件,將默認(rèn)的sqlite3數(shù)據(jù)庫改為MySQL找到:

SQLALCHEMY_DATABASE_URI = 'sqlite:////path/to/superset.db'

將其改為:

SQLALCHEMY_DATABASE_URI = ‘mysql://用戶名:密碼@IP地址/數(shù)據(jù)庫名?charset=utf8’

3.4 在MySQL中創(chuàng)建superset數(shù)據(jù)庫

mysql -uroot -p #登錄MySQL
create database 數(shù)據(jù)庫名; #建立superset數(shù)據(jù)庫

3.5 初始化superset

fabmanager create-admin --app superset #建立管理員賬號(hào)
superset db upgrade
superset init #初始化superset數(shù)據(jù)庫
superset runserver #運(yùn)行superset

在基礎(chǔ)數(shù)據(jù)表的初始化過程中,table_columns數(shù)據(jù)表中的type字段為32的varchar類型,如果需要連接排序規(guī)則為mssql的話,會(huì)導(dǎo)致數(shù)據(jù)表添加過程出錯(cuò),無法添加數(shù)據(jù)表中的字段
因此,需要將type字段長度修改為255

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容