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