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)登入並修改MySQL的root密碼
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