前言
mysql 最初的免費戰略已經深入人心,感覺自己一直都在用 mysql 。今天在 CentOS7 下裝 mysql 。發現原來 centos 下預設沒有 mysql,因為開始收費了,取而代之的是另一個 mysql 的分支 mariadb,這個是 mysql 創始人重新主導的分支。 But, whatever, I want mysql. 所以,老老實實的解除安裝 mariadb,安裝 mysql 。
解除安裝 mariadb
#列出所有被安裝的 rpm package
rpm -qa | grep mariadb
#解除安裝
rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64
錯誤:依賴檢測失敗:
libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
#強制解除安裝,因為沒有–nodeps
rpm -e –nodeps mariadb-libs-5.5.37-1.el7_0.x86_64
安裝 mariadb
centos 下 yum 暫時沒有 mysql-server 直接安裝包;
MariaDB 是 MySQL 社羣開發的分支,也是一個增強型的替代品.
yum -y install mariadb-server mariadb mariadb-devel
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation
firewall-cmd –permanent –add-service mysql
systemctl restart firewalld.service
iptables -L -n|grep 3306
安裝 mysql
centos7 中預設沒有 mysql 的 yum 源,需要重新下載:
1. 下載 mysql 的 repo 源
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 安裝 mysql-community-release-el7-5.noarch.rpm 包
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
3. 安裝 mysql
$ sudo yum install mysql-server
4. 重置密碼
需要先登入:
$ mysql -u root
我使用的 root,但也報錯了:
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql 的訪問許可權問題。下面的命令把/var/lib/mysql 的擁有者改為當前使用者:
$ sudo chown -R openscanner:openscanner /var/lib/mysql
重啓 mysql service:
$ service mysqld restart
接下來設定密碼:
$ mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > exit;
開放 3306 埠
由於 centos7 使用 firewalld 而不是 iptables, 所以:
#開放 3306
firewall-cmd –add-port=3306/tcp
#檢視埠是否開放
firewall-cmd –query-port=3306/tcp
允許 mysql 遠端訪問
mysql 預設是不允許遠端訪問的.
mysql -u root -p xxxx
mysql>use mysql
mysql>grant all privileges on *.* to ‘root’@’%’ identified by ‘xxxxx(密碼)’;
mysql>flush privileges;