linux(Centos7)安裝mysql


查看系統環境
[root@localhost html]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

CentOS 7 版本將MySQL數據庫軟件從默認的程序列表中移除,用mariadb代替了

MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。

所以centos7默認帶mariadb, 可以 rpm -qa | grep mariadb  來看是否安裝mariadb  (rpm -qa 是用來查詢所有已經安裝的軟件包)

 

 網上給出了很多方法,這里來區別一下

方法一 (已不能用):

yum install mysql
yum install mysql-server
yum install mysql-devel

 運行 yum install mysql , 顯示安裝的是mariadb.x86_64 1:5.5.68-1.2l7   

安裝mysql-server , 沒有這個包

安裝mysql-devel , 顯示的是mariadb-devel

 

 方法二(使用mariadb):

yum install mariadb
yum install mariadb-server    #安裝了這個才能啟動服務

systemctl start mariadb    #啟動服務
systemctl enable mariabdb    #開機啟動
systemctl status mariadb    #查看服務是否啟動

進行MariaDB的相關簡單配置  

mysql_secure_installation

 

首先是設置密碼,會提示先輸入密碼

Enter current password for root (enter for none):<–初次運行直接回車

設置密碼

Set root password? [Y/n] <– 是否設置root用戶密碼,輸入y並回車或直接回車
New password: <– 設置root用戶的密碼
Re-enter new password: <– 再輸入一次你設置的密碼

其他配置  (回車就是y)

Remove anonymous users? [Y/n] <– 是否刪除匿名用戶,回車

Disallow root login remotely? [Y/n] <–是否禁止root遠程登錄,回車,

Remove test database and access to it? [Y/n] <– 是否刪除test數據庫,回車

Reload privilege tables now? [Y/n] <– 是否重新加載權限表,回車

 

然后用root進行登錄

mysql -u root -p    # -u 后接用戶

 輸入密碼后就進入mysql

配置MariaDB的字符集

無論是使用XAMPP類似集成環境或是手工安裝的MySQL/MariaDB默認字符集都是lartin1,后續調用的時候每次都要進行轉碼很麻煩,記錄一下通過修改配置文件修改數據庫的默認編碼:
Linux下修改文件/etc/my.cnf ,windows下修改my.ini,內容一樣的

第一步:

vi /etc/my.cnf

 

在 [mysqld] 下添加

init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake

 

 第二步:

vi /etc/my.cnf.d/client.cnf

 

在 [client] 下添加

default-character-set=utf8

 

第三步:

vi /etc/my.cnf.d/mysql-clients.cnf

 

在 [mysql] 下添加

default-character-set=utf8

 

第三步:

systemctl restart mariadb

 

最后就可以進入MariaDB查看字符集

mysql> show variables like "%character%";show variables like "%collation%";

顯示為

 

 

方法三 (官網下載安裝mysql-server)

從官網安裝mysql-community-release-el7-5.noarch.rpm包

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm    #下載包 rpm -ivh mysql-community-release-el7-5.noarch.rpm
wget命令通過yum install wget 下載安裝
wget 下載指點url的rpm包,若不指定下載路徑,則默認安裝在當前文件夾

從yum庫中安裝mysql-community-server (沒這個啟動不了服務)
yum install mysql-server  
這步可能會花些時間,安裝完成后就會覆蓋掉之前的mariadb
注:若安裝了mysql,則會完全覆蓋之前的mariadb,yum install mysql 更改為下載Mysql(默認是mariadb)
  若要刪除用rpm,yum都行,但是可能處在刪除不徹底,若要刪除徹底,請百度
systemctl start mysqld
systemctl start mysqld.service
service mysqld start
service mysqld.service start

四種方法都能啟動服務

systemctl status mysqld
systemctl status mysqld.service
service mysqld status
service mysqld.service status

四種方法都能顯服務狀態
 
        

對mysql進行配置,和mariadb一樣

mysql_secure_installation

如果之前安裝了mysql 或者mariadb ,又沒有刪除用戶的,原有的用戶密碼文件還在,可以直接mysql -u root -p

下面是偽用戶

 

  

 

 對mysql設置編碼

show variables like 'character%';

查看MySQL編碼,有兩個不是utf-8,如果輸入中文會出現亂碼

為了解決中文亂碼問題

 通過修改配置文件my.cnf , 在 [mysqld]下增加 character-set-server=utf8  

有的是添加default-character-set=utf8 , 但是我用centos7后服務無法啟動

再加上init_connect=’SET NAMES utf8’  (設定連接mysql數據庫時使用utf8編碼,以讓mysql數據庫為utf8運行)

然后systemctl restart mysqld

查看編碼  ,變為utf8了

 

 

不過  修改數據庫的字符集之后,只對以后創建的庫和表生效。對之前的庫和表無能為力,需要手動修改已經的庫和表字符集

修改庫的字符集

alter database (database) character set 'utf8';

修改表的字符集

use demo;

alter table (table) convert to character set 'utf8';

 注:在修改配置時,建議先停服務再修改!其實所有的服務都應該這么處理,良好的習慣,讓我們避免遇到不必要的問題!

 

 

 

 















免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM