十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
mysql可以以docker的形式在集群內(nèi)部署,也可以安裝在集群之外,以服務(wù)的形式部署到集群內(nèi)。
創(chuàng)新互聯(lián)公司擁有十年成都網(wǎng)站建設(shè)工作經(jīng)驗(yàn),為各大企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)服務(wù),對(duì)于網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、重慶App定制開發(fā)、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、程序開發(fā)、網(wǎng)站優(yōu)化(SEO優(yōu)化)、微網(wǎng)站、域名注冊(cè)等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了很多網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等網(wǎng)站化運(yùn)作于一體,具備承接各種規(guī)模類型的網(wǎng)站建設(shè)項(xiàng)目的能力。
(1)、如果是在集群內(nèi)部署,可以啟動(dòng)一個(gè)ReplicationController,用以對(duì)mysql pod進(jìn)行監(jiān)控,并同時(shí)啟動(dòng)一個(gè)Service,用以集群訪問。
(2)、如果mysql是安裝在集群之外,那么可以啟動(dòng)一個(gè)Endpoint和Service,將mysql引入集群之中。
下面分別對(duì)這兩種方式進(jìn)行部署。
創(chuàng)建mysql-rc.yaml和mysql-svc.yaml,分別如下:
mysql-rc.yaml
mysql-svc.yaml
在mysql-rc.yaml中,image參數(shù)可以指定mysql的版本,如8.0.11、5.7.22等。這里省略了,表示用latest。另外,可以指定鏡像庫(kù),這里使用阿里云鏡像庫(kù),在安裝docker時(shí)進(jìn)行了配置。env參數(shù)指定了mysql的root密碼。
在mysql-svc.yaml中,targetPort表示mysql pod中mysql窗口的目標(biāo)端口,默認(rèn)為3306,type類型為NodePort,表示將映射到本地端口,本地端口為nodePort: 30306。
接下來啟動(dòng)ReplicationController和Service,執(zhí)行以下命令:
啟動(dòng)后可以查看mysql部署在了哪個(gè)node上,執(zhí)行以下命令可以查看:
(6)、退出mysql和容器,執(zhí)行quit;退出mysql,按ctrl+p后,再按ctrl+q從容器中返回node主機(jī)。
設(shè)置好mysql后,可以遠(yuǎn)程連接node中的mysql,node的ip為127.0.0.1,映射的端口為30306,可以用navicat工具連接到這個(gè)myql。
先去軟件市場(chǎng)下載安裝MySQL。根據(jù)需求配置MySQL。
然后在配置文件中查找替換自己需要的內(nèi)容。接下來還可以進(jìn)行優(yōu)化和對(duì)負(fù)載進(jìn)行查看。最后你還需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行創(chuàng)建管理,也可以直接在云幫手的站點(diǎn)管理——數(shù)據(jù)管理中操作。
1、 將mysql-connector-java-5.1.6-bin.jar,也在%Tomcat_Home%\common\lib\下,
2、 在tomcat中manager中配置數(shù)據(jù)源名,配置完后內(nèi)容自動(dòng)放在conf\server.xml中。
3、 在conf\catalina\localhost\下建你應(yīng)用程序的xml文件,例wei2.xml中,內(nèi)容為Context docBase="wei2" path="/wei2"
ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource"/
/Context
其中jdbc/mysql為配置的JNDI;
下面說下JNDI與DataSource
JNDI java naming directory interface命名和目錄接口命名服務(wù)來使組件定位到其它組件和資源(數(shù)據(jù)庫(kù)資源),JNDI所有名應(yīng)該以字符串java:comp/env開始;
要定位JDBC資源中,這時(shí)就可以編寫代碼使用JNDI的lookup()方法來定位到這個(gè)資源了。
JNDI命名服務(wù)有一組將名稱與對(duì)象聯(lián)系在一起的綁定。JNDI中的lookup()方法傳遞一個(gè)JNDI參數(shù)(java:comp/env/myjdbc,前面java:comp/env是必要的。),返回相應(yīng)的對(duì)象(返回類型為DataSource,若為數(shù)據(jù)庫(kù),則可用DataSource中的getConnection()方法獲取數(shù)據(jù)庫(kù)連接).
在Linux安裝軟件需要預(yù)先做好如下一些準(zhǔn)備:準(zhǔn)備好Linux操作系統(tǒng)如:CentOS7。配置好yum源。
完成上述準(zhǔn)備后,就可以動(dòng)手安裝MySQL數(shù)據(jù)庫(kù)了。主要安裝步驟如下:
1. 禁用selinux
setenforce 0
2. 上傳安裝文件到Linux
3.解壓rpm包
tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
4.安裝軟件
yum install mysql-community-{libs,client,common,server}-*.rpm
5.啟動(dòng)mysql數(shù)據(jù)庫(kù)初始化
systemctl start mysqld
6.修改vi /etc/my.cnf
添加:
[mysqld]
#可以在表中錄入中文
character-set-server=utf8 #
explicit-defaults-for-timestamp
# 禁用當(dāng)前密碼認(rèn)證策略,可以使用簡(jiǎn)單密碼(生產(chǎn)環(huán)境不適用)
validate_password=0
7.重啟mysql服務(wù)
systemctl restart mysqld
8.找臨時(shí)登錄密碼
grep -i "temporary password" /var/log/mysqld.log
9.連接MySQL數(shù)據(jù)庫(kù)
mysql -uroot -p 輸入臨時(shí)密碼
10.修改root用戶登錄密碼為簡(jiǎn)單密碼(生產(chǎn)環(huán)境不適用)
alter user root@localhost identified by '';
11.配置MYSQL_PS1環(huán)境變量
修改家目錄下:.bash_profile文件,添加
export MYSQL_PS1="\u@\h[\d]"
12.使新環(huán)境變量生效
source /root/.bash_profile
13.重新連接mysql驗(yàn)證
mysql -uroot -p
除了上述安裝方式以外,可能在公司中會(huì)遇到安裝指定版本的需求,那么如何安裝指定版本的MySQL數(shù)據(jù)呢?這時(shí)我們可以采用下載指定版本安裝包進(jìn)行安裝的方式,主要步驟如下,假設(shè)CentOS7 linux最小安裝,已經(jīng)配置好yum。首先檢查是否安裝numactl包
rpm -qa|grep numactl
yum install numactl-libs-* # 如果沒有安裝需要安裝。檢查是否安裝libaio包
rpm -qa|grep libaio
yum install libaio-* # 如果沒有安裝需要安裝
具體安裝步驟如下:
* 禁用selinux
setenforce 0
* 上傳安裝文件到Linux
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
* 創(chuàng)建mysql用戶組和用戶
groupadd -g 27 -r mysql
#-r創(chuàng)建系統(tǒng)賬戶,-M 不創(chuàng)建用戶家目錄 -N 不創(chuàng)建和用戶名一樣的用戶組
useradd -M -N -g mysql -r -s /bin/false -c "MySQL Server" -u 27 mysql
id mysql
* 上傳安裝包到root家目錄
* 解壓二進(jìn)制文件到/usr/local
tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local
* 解壓目錄改名為mysql
cd /usr/local
ls -l
mv mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
* 環(huán)境變量中添加mysql/bin目錄
vi /root/.bash_profile
修改PATH=/usr/local/mysql/bin:$PATH:$HOME/bin
添加 export MYSQL_PS1="\u@\h[\d]"
source /root/.bash_profile
* 創(chuàng)建/usr/local/mysql/etc/my.cnf選項(xiàng)文件 (也可以使用默認(rèn)的/etc/my.cnf選項(xiàng)文件)
mkdir -p /usr/local/mysql/etc
mkdir -p /usr/local/mysql/mysql-files
* 編輯選項(xiàng)文件my.cnf填寫默認(rèn)選項(xiàng)
vi /usr/local/mysql/etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock
log-error=/usr/local/mysql/data/mysqld.err
pid-file=/usr/local/mysql/data/mysqld.pid
secure_file_priv=/usr/local/mysql/mysql-files
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
Explicit-defaults-for-timestamp
character-set-server=utf8
[mysql]
socket=/usr/local/mysql/data/mysql.sock
* 初始化數(shù)據(jù)目錄
cd /usr/local/mysql
mkdir data
chmod 750 data
chown mysql:mysql data
* 初始化數(shù)據(jù)庫(kù)
cd /usr/local/mysql
bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize
* 使用systemd管理mysql
例如:systemctl {start|stop|restart|status} mysqld
cd /usr/lib/systemd/system
touch mysqld.service
chmod 644 mysqld.service
vi mysqld.service
# 添加以下內(nèi)容
[Unit]
Description=MySQL Server
Documentation=man:mysqld(7)
Documentation=
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --daemonize --pid-file=/usr/local/mysql/data/mysqld.pid $MYSQLD_OPTS
# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql
# Sets open_files_limit
LimitNOFILE = 65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false
以上內(nèi)容中注意:The --pid-file option specified in the my.cnf configuration file is ignored by systemd.
默認(rèn):LimitNOFILE = 5000,如果連接數(shù)(max_connection)需要調(diào)大,可以將LimitNOFILE 設(shè)置為最大65535
* 創(chuàng)建mysql.conf文件
cd /usr/lib/tmpfiles.d
#Add a configuration file for the systemd tmpfiles feature. The file is named mysql.conf and is placed in /usr/lib/tmpfiles.d.
cd /usr/lib/tmpfiles.d
touch mysql.conf
chmod 644 mysql.conf
* mysql.conf添加內(nèi)容
vi mysql.conf
添加以下語句:
d /usr/local/mysql/data 0750 mysql mysql -
* 使新添加的mysqld服務(wù)開機(jī)啟動(dòng)
systemctl enable mysqld.service
* 手動(dòng)啟動(dòng)mysqld
systemctl start mysqld
systemctl status mysqld
* 獲得mysql臨時(shí)登錄密碼
cat /usr/local/mysql/data/mysqld.err | grep "temporary password"
* 客戶端登錄連接mysql服務(wù)器
mysql -uroot -p
輸入臨時(shí)密碼
* 修改MySQL用戶root@localhost密碼
mysql alter user root@localhost identified by ''; #此處為了方便設(shè)置為空密碼
* 測(cè)試新密碼連接MySQL服務(wù)
mysql -uroot -p
至此,我們就完成了在Linux環(huán)境下安裝MySQL的任務(wù)。通過這兩種方式我們可以體會(huì)到在Linux環(huán)境下安裝軟件的基本思路及方法。