1. 程式人生 > >Mysql在contos7中的安裝和配置

Mysql在contos7中的安裝和配置

解除安裝contos7自帶的 mariadb

首先CentOS7 已經不支援mysql,因為收費了你懂得,所以內部集成了mariadb,而安裝mysql的話會和mariadb的檔案衝突,所以需要先解除安裝掉mariadb,以下為解除安裝mariadb,安裝mysql的步驟。

列出所有被安裝的rpm package

rpm -qa | grep mariadb

解除安裝掉 mariadb

rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64

解除安裝可能出現一些錯誤無法解除安裝需要強制解除安裝

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64

安裝mysql步驟:

1 下載並安裝MySQL官方的Yum Repository

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

2,安裝Yum Repository

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

3,開始安裝mysql伺服器

yum -y install mysql-community-server

啟動mysql資料庫

systemctl start  mysqld.service

檢視執行狀態

systemctl status mysqld.service

此時MySQL已經開始正常執行,不過要想進入MySQL還得先找出此時root使用者的初始化密碼,通過如下命令可以在日誌檔案中找出密碼:

grep "password" /var/log/mysqld.log

GRABT ALL PRIVILGESON *.* TO 'root'@'%'IDENTIFLED BY'root'WITH GRANT OPTION;

第一種方式設定密碼:

進入資料庫:

mysql -uroot -p (注意-u和使用者名稱密碼一定不能有空格)

輸入初始化密碼

此時需要設定新密碼

:

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密碼';
新密碼設定簡單可能會報錯,需要改變密碼策略
set global validate_password_policy=0;
set global validate_password_length=1;
因為安裝了Yum Repository,以後每次yum操作都會自動更新,需要把這個解除安裝掉 
yum -y remove mysql57-community-release-el7-10.noarch

第二種方式設定密碼:
(1)
修改配置檔案,進入mysql不用密碼

vim /etc/my.cnf

[mysqld]的段中加上一句:skip-grant-tables

儲存退出!重啟muysql服務

(2)登入並修改MySQLroot密碼

mysql進入

USE mysql;

update mysql.user set authentication_string=password('你的新密碼') where user='root';

flush privileges ;

quit;

my.cnf 的剛剛的配置註釋掉



解決遠端連線mysql無法連線或錯誤問題

在安裝mysql的機器上登入mysql,更改 “mysql” 資料庫裡的 “user” 表裡的 “host” 項,從”localhost”改稱'%'即可

命令:

以許可權使用者root登入:

#mysql -uroot -p**

選擇mysql:

mysql>use mysql;

檢視mysql庫的user表的host:

mysql>select 'host' from user where user='root';

修改host值(以萬用字元%的內容增加主機/IP地址),當然也可以直接增加IP地址

mysql>update user set host = '%' where user ='root';

重新整理MySQL的系統許可權相關表

mysql>flush privileges;

用工具連線就成功了;


配置資料庫的編碼

登入mysql

檢視mysql的字符集:

show variables like '%character%';


設定mysql的字符集為utf-8

開啟 /etc 目錄下的 my.cnf 檔案(此檔案是 MySQL 的主配置檔案):

vi /etc/my.cnf

[mysqld]前面新增下面程式碼:

[client]

default-character-set=utf8

[mysqld]後面新增程式碼:

character_set_server=utf8

重啟mysql服務:

systemctl restart mysqld.service

再次檢視字符集:

show variables like '%character%';

 

設定mysql開機啟動服務:

1,建立systemctl管理mysql的配置檔案

命令:touch /usr/lib/systemd/system/mysql.service

2,配置檔案

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html

After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

#Restart=on-failure

#RestartPreventExitStatus=1

#PrivateTmp=false




這裡最重要的一行是ExecStart它表示當systemctl去啟動mysql時要執行的命令。

3,通過systemctl來設定mysql開機啟動

[[email protected] system]# systemctl enable mysqlCreated symlink from /etc/systemd/system/multi-user.target.wants/mysql.service to /usr/lib/systemd/system/mysql.service

啟動 MySQL 服務:

service mysqld start

systemctl start mysqld.service

關閉 MySQL 服務:

service mysqld stop

systemctl stop mysqld.service

重啟 MySQL 服務:

service mysqld restart

systemctl restart mysqld.service

檢視 MySQL 的狀態:

service mysqld status

systemctl status mysqld.service

登入mysql

mysql -uroot -phmj123
注意進入mysql輸入命令一定要;結尾,不然命令無法執行


安裝以後檔案對應的目錄

mysql的資料檔案和二進位制檔案: /var/lib/mysql/

mysql的配置檔案: /etc/my.cnf

mysql的日誌檔案: /var/log/mysql.log