赞
踩
基于java + mysql + redis + vue的项目,需要物理机进行部署。物理机为dell服务器,预安装了CentOS 7.9系统,自己要安装相应环境,这里先记录安装mysql的过程。
下载mysql并进行安装
- # 定位到相应目录
- cd /usr/local/src
- # 下载安装包
- wget https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
- # 安装 i代表安装,v代表可视的,h代表进度
- rpm -ivh mysql57-community-release-el7-11.noarch.rpm
-
- # 不执行安装会出错
- rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-<当前年份>
-
- # 安装mysql
- yum -y install mysql57-community-release-el7-11.noarch.rpm
-
- # 上面不行的话,执行下面这个
- yum install mysql-community-server
执行完后正常来说是可以直接运行 systemctl mysqld start 来启动了,但是当时启动并没成功,之后对问题进行排查
当时启动时报出的错误信息: Failed to start mysqld.service: Unit not found
百度查的原因是 CentOS7不再支持mysql而是使用mariadb了,但是自己还是需要mysql,所以就继续查能让mysql运行的方法。
其中一个方法是直接在 /etc/systemd/system/mysqld.service 下添加一个unit,当时目录下并没有这个文件,自己是直接vi生成的,保存后执行仍然失败。
之后看了下阿里云服务器上的执行命令 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid,所以想直接用这个命令试试能不能启动,后来发现sbin目录下没有这个文件,所以就在考虑是不是压根就没有安装成功
之后重新尝试使用 rpm 命令进行安装,仔细看下发现有报出 以下问题
- The GPG keys listed for the "MySQL 5.7 Community Server" repository are already installed but they are not correct for this package.
- Check that the correct key URLs are configured for this repository.
后来查到是版本问题
执行 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-<当前年份> 后安装成功
再之后启动时报了
Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
后发现是mysql是不允许使用root用户直接启动的,后来决定使用mysql用户来进行启动
直接找到 vim /etc/my.cnf 文件, 在[mysqld]下输入内容:user=mysql
然后进行启动,仍是报错,错误信息为 ‘initialize specified but the data directory has files in it’
大概意思是数据已经初始化一次了,不再再初始化了
所以先检查目录 vi /etc/my.cnf, 找到datadir对应的目录(默认应该是/var/lib/mysql)
- # 通过修改目录名的方式来删除目录(以防万一,旧文件先不删除)
- cd /var/lib
- mv mysql mysql_bak
启动成功后需要进行到mysql并且创建新的用户供项目使用,首先是查找mysql的默认生成的密码
可以在日志文件中找到,地址默认在(/var/log/mysqld.log)
mysql -u root -p
之后输入对应密码登录进去后,mysql要求先改密码,简单密码无法通过,自己当时是用大小写+数字+字符
ALTER USER USER() IDENTIFIED BY '新密码';
后面考虑不对外直接放出root密码了,太不安全,所以直接创建了新的用户
- # @'%' 代表所有ip都能使用
- grant all on *.* to <用户名>@'%' identified by '<密码>' with grant option;
-
- flush privileges;
远程连接mysql的话需要开放3306端口
CentOS当前版本使用 iptables 是不行的,需要使用以下命令
- # 端口开放
- firewall-cmd --zone=public --add-port=3306/tcp --permanent
- # 重启防火墙
- firewall-cmd --reload
- # 检查端口是否正常开启
- firewall-cmd --list-ports
端口开放后再客户端测试,通过!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。