centos7下使用yum安装mysql数据库
首先centos7 已经不支持mysql,因为收费了你懂得,所以内部集成了mariadb,
而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb。由于确定使用mysql,那只有卸载mariadb了。
一、首先查看当前安装的mariadb包
rpm -qa|grep mariadb
本人得到结果是:mariadb-libs-5.5.44-2.el7.centos.x86_64
二、卸载mariadb
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64得到错误提示如下:
1 error: Failed dependencies:
2 libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
3 libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
提示有第三方的库依赖。
三、强制卸载mariadb
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
四、安装Mysql的库。
(CentOS7的yum源中默认是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。
最开始CentOS下自带一个数据库检查该机器上是否安装过mysql; rpm -qa|grep -i mysql
如果没有任何输入证明没有安装过,如果安装过需要卸载的话用rpm -e 软件包名 来卸载)
1.下载并安装MySQL官方的 Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
如果 wegt 未安装的话可以先用 yum 安装 wget :
yum install wget
2. 安装mysql57-community-release-el7-10.noarch.rpm包
yum -y install mysql57-community-release-el7-10.noarch.rpm
安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3. 安装MySQL
yum -y install mysql-community-server
至此MySQL就安装完成了,然后是对MySQL的一些设置。
4.重置MySQL密码
在MySQL安装完成后,第一次启动MySQL时,会把密码记录到 /var/log/mysqld.log 文件中
首先启动MySQL:
systemctl start mysqld.service
查看mysql运行状态:
systemctl status mysqld.service
找出在日志文件中的密码:
grep "password" /var/log/mysqld.log 然后把临时密码复制下来,进入数据库进行修改密码。
进入数据库
mysql -u root -p
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; 新密码要数字字母,否则会报错
如果一直说设置的新密码密码不合法,可以做着两部再修改密码。
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
登录时有可能报这样的错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:
chown -R root:root /var/lib/mysql
5. 开放3306端口
vi /etc/sysconfig/iptables
添加一下内容
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
保存退出并重启防火墙
systemctl restart iptables.service
6. 授权用户远程登录
登进数据库中,进行授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'new password' WITH GRANT OPTION;
现在就可以从客户机连接mysql服务器了,如果连接报这样的错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.x.xxx' (113)。因为我们是centos7,请先确认防火墙是否开启来,centos7默认是firewall,我们可以把它停止并禁止使用,然后启动我们熟悉的iptables,这样就好了!