阿里云服務器搭建(二)--mysql配置+部署web項目

阿里云服務器搭建(一)java環境配置+tomcat配置

阿里云服務器搭建(二)--mysql配置+部署web項目


四、linux下配置mysql

1、安裝mysql

安裝方式有兩種,一種可以使用 yum 來安裝 mysql。一種是到官網下載安裝包后上傳解壓安裝。

這里我使用的是yum來安裝的

首先檢查一下本機上面是否安裝有mysql(我的并沒有安裝過mysql):rm -qa | grep mysql

圖2-1

PS:如果安裝了, 普通刪除模式 rpm -e mysql

查看有沒有安裝mariadb,都沒有,很好,開始安裝mysql,我們需要安裝三個東西如圖2、3、4:

①安裝MySQL官方的Yum Repository

# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

②下載rpm包

# yum -y install mysql57-community-release-el7-10.noarch.rpm

③安裝MySQL服務

# yum -y install mysql-community-server

圖2-2
圖2-3
圖2-4

啟動mysql服務(注意:是mysqld哦),但是我這里報錯了:

# systemctl start mysqld.service

圖2-5

從圖5的信息上看,我們可以輸入命令systemctl status mysqld.service或者?journalctl -xe查看錯誤信息。

圖6為輸入命令 journalctl -xe 看到的信息。從報錯信息可以看出來,是配置目錄里面有東西。

圖2-6

需要進入到配置文件里面,查看數據目錄是什么

#?vi /etc/my.cnf?

圖2-7

再啟動mysql,沒問題了。

圖2-8

使用命令 # service mysqld status 或者 # service mysql status 命令來查看mysql 的啟動狀態

如果是 mysqld is stopped 那就說明mysql服務是停止狀態,

如果是 mysqld is running 那就說明mysql服務是啟動狀態

圖2-9

2、設置 mysql 開機自啟

為什么要設置呢?因為每次關機重啟后,mysql 服務都會被停止,處于 stop 狀態,這時要使用 mysql,就得執行 service mysqld start 命令,比較繁瑣,所以設置一下開機自啟,可以減少麻煩。

#?systemctl enable mysqld

#?systemctl daemon-reload?剛剛配置的服務需要讓systemctl能識別,就必須刷新配置

圖2-10

3、設置mysql密碼

執行以下命令,查找到初始臨時密碼后,登陸mysql:

#grep?'temporary?password'?/var/log/mysqld.log?

圖2-11

注意:mysql5.7默認安裝了密碼安全檢查插件(validate_password),默認密碼檢查策略要求密碼必須包含:大小寫字母、數字和特殊符號,并且長度不能少于8位。否則會提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements錯誤,如下圖12:?

圖2-12

通過msyql環境變量可以查看密碼策略的相關信息:

mysql> show variables like '%password%';

圖2-13

validate_password_policy:密碼策略,默認為MEDIUM策略?

validate_password_dictionary_file:密碼策略文件,策略為STRONG才需要?

validate_password_length:密碼最少長度?

validate_password_mixed_case_count:大小寫字符長度,至少1個?

validate_password_number_count :數字至少1個?

validate_password_special_char_count:特殊字符至少1個?

上述參數是默認策略MEDIUM的密碼檢查規則。

共有以下幾種密碼策略:

圖2-14

修改密碼策略

在/etc/my.cnf文件添加validate_password_policy配置,指定密碼策略

validate_password_policy=0

圖2-15

如果不需要密碼策略,在my.cnf文件中添加如下配置禁用即可:

validate_password = off

重新啟動mysql服務使配置生效:

systemctl restart mysqld

找到臨時密碼后,登陸,然后設置新的密碼:

登陸mysql:mysql -u用戶名(一般為root) -p臨時密碼【比如我的就是:mysql -uroot -pjCjIdBpqB3+A

注意-p后面緊接著密碼

然后在修改密碼:alter user root@localhost identified by '你要修改成的密碼';

圖2-16

4、刪除

至此設置完成,但還有一點小問題,因為安裝了Yum Repository,以后每次操作yum都會自動更新需要卸載它。

圖2-17

5、配置遠程登錄:

MySQL默認root用戶只能本地登錄,如果要遠程連接,要簡單設置下,這里直接用root來遠程登錄不添加其他角色。

# GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '4008' WITH GRANT OPTION;

庫名:要遠程訪問的數據庫名稱,所有的數據庫使用“*”?

表名:要遠程訪問的數據庫下的表的名稱,所有的表使用“*”?

用戶名:要賦給遠程訪問權限的用戶名稱?

IP地址:可以遠程訪問的電腦的IP地址,所有的地址使用“%”?

密碼:要賦給遠程訪問權限的用戶對應使用的密碼

圖2-18

沖刷權限

# flush privileges;

圖2-19

注意:(這一段我沒有用到,看看就好q^q)

需要注意mysql的配置文件中的bindaddress 的參數和skip-networking 配置

bindaddress : 設定哪些ip地址被配置,使得mysql服務器只回應哪些ip地址的請求),最好注釋掉該參數或設置成為127.0.0.1以外的值

skip-networking : 如果設置了該參數項,將導致所有TCP/IP端口沒有被監聽,也就是說出了本機,其他客戶端都無法用網絡連接到本mysql服務器,所以應該注釋掉該參數

圖2-20

這時使用navicat連接,依然失敗。因為我們需要在服務器端添加3306端口

圖2-21

6、添加3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent;

命令含義:?

--zone #作用域?

--add-port=80/tcp #添加端口,格式為:端口/通訊協議?

--permanent #永久生效,沒有此參數重啟后失效?

圖2-22

結果說沒有運行防火墻,在之前的安裝tomcat的時候,我將防火墻打開了,現在需要關閉防火墻了。并且之前配置tomcat時打開的端口,需要再次設置。

首先,將防火墻打開:

# systemctl status firewalld? 查看防火墻狀態

# systemctl start firewalld? 打開防火墻

圖2-23

然后再輸入那個開放3306端口的命令就行了

再重啟防火墻

firewall-cmd --reload? 重啟防火墻

圖2-24

查看端口監聽狀態:netstat -an|grep 3306

如果顯示不是如上圖所示,則需要修改配置文件。找到my.cnf,一般在/etc/mysql/下面,具體情況根據實際而定。注釋掉其中的bind-address屬性。如下

圖2-25

7、MySQL設置utf8:

打開/etc/my.cnf也就是數據庫的配置文件,然后在底部復制粘貼:

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

圖2-26

查看:

圖2-27

PS:采用navicat新建數據庫時,需要將編碼方式設置為,字符集:utf8 -- UTF-8 Unicode ,排序規則:utf8_general_ci

如果在運行sql語句時,出現以下問題:

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated c

原因:

MySQL 5.7.5及以上功能依賴檢測功能。如果啟用了ONLY_FULL_GROUP_BY SQL模式(默認情況下),MySQL將拒絕選擇列表,HAVING條件或ORDER BY列表的查詢引用在GROUP BY子句中既未命名的非集合列,也不在功能上依賴于它們。(5.7.5之前,MySQL沒有檢測到功能依賴關系,默認情況下不啟用ONLY_FULL_GROUP_BY。有關5.7.5之前的行為的說明,請參見“MySQL 5.6參考手冊”)。

解決辦法:

打開: /etc/my.cnf

滾動到文件底部復制并粘貼

[mysqld]

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

也可以:

sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

到文件的底部

保存并退出輸入模式

圖2-28

重啟MySQL:systemctl ?restart mysqld.service

8、開啟阿里云安全組端口策略

登陸阿里云,進入控制臺,網絡和安全->安全組->配置規則(和之前的步驟一樣)將MySQL監聽端口開放即可,如下:

圖2-29

再用navicat連接就可以了

圖2-30

配置文件的說明:

/etc/my.cnf?這是mysql的主配置文件

/var/lib/mysql?mysql數據庫的數據庫文件存放位置

/var/log?mysql數據庫的日志輸出存放位置

五、部署項目

1、導出導入數據

由于是新服務器,上面沒有數據,作為一個web項目,肯定是有數據庫的使用的。所以第一步是將本地數據導入。

在本地的windows系統下,按鍵“win”+r 進入cmd命令,切換到mysql安裝目錄下,我的mysql路徑為:C:\Program Files\MySQL\MySQL Server 5.7\bin

導出數據庫:mysqldump -u [用戶名] -p ?[要導出的數據庫]>[導出的路徑//[文件名].txt]

如我輸入的命令行:mysqldump -u root -p jyb > jyb.txt? ?(輸入后會讓你輸入進入MySQL的密碼)

圖2-31

然后使用xftp將文件上傳至服務器

圖2-32

在xshell中,登陸mysql,創建數據庫:create database jyb;

直接使用source [所在的路徑//*.txt]?將文件進行導入

圖2-33

查看數據庫:show databases;

圖2-34

2、打war包

我用的是idea。

圖2-35

將打好的war包上傳至服務器tomcat的webapps下:

圖2-36

至此,就可以使用啦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容