阿里云服务器安装mysql,部署javaweb项目
首先,记住centOS7之后的很多命令都和老版本不同,具体的下面会介绍;
centos7不支持mysql,内部集成了mariadb,而安装mysql的话会和mariadb文件冲突,所以需要先卸载mariadb,以下为卸载mariadb,安装mysql的步骤:
rpm -qa | grep mariadb(列出安装过的rpm) 卸载:rpm -e mariadb-libs-5.5.37-1.el7_0.x86_64
为了方便,下面centos7叫”新版本“,centos前的叫”老版本“;
开始安装mysql
首先:看下图:
1.检测以前有没有安装过数据库可以用以下命令来检测:
rpm -qa | grep MySQL(旧版本)
rpm -qa | grep -i mysql(新版本)
2.有的话就删除:
rpm -e 加上文件名
yum remove 文件名(用这个卸载需谨慎,容易删掉其他配置文件!!下图就是警告)
如果出现出现有依赖无法删除就使用下面的命令强制删:
rpm -e --nodeps 文件名
rpm -ev (文件名) --nodeps
3.接着可以去找安装包了,tar,rpm,yum安装三种方式选择,下面提供了一种yum+rpm的安装方式:
3.1:因为CentOS 7的yum源中默认是没有mysql的。所以,为了解决这个问题我们首先下载安装mysql的repo源,使用下面的命令:
wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
3.2:接着安装mysql的repo源:
rpm -ivh mysql57-community-release-el7-7.noarch.rpm
3.3:开始安装:
yum install mysql-server 安装mysql-server
yum install mysql-devel 安装mysql-devel
yum install mysql
最后就使用前面是否安装的命令查看一下
数据库的默认安装路径(具体的因人而异)
/var/lib/mysql
默认配置文件放在
/usr/share/mysql(需要就去看下)
4.启动mysql:
service mysql start (老版本)
systemctl start mysqld (新版本)
5.使用mysql -uroot -p 进入mysql,
进去之后先使用命令:use mysql;这时候如果提示你@localhost @YES… 之类的东西,或者你根本就进不去数据库的时候,你就得先使用exit,quit回到主页面上,cd /切到根目录 使用命令:
vim /etc/my.cnf,在文件末尾加上skip-grant-tables;然后就可以不用输入密码可以直接进入数据库了,然后再修改密码,继续登入mysql;使用use mysql基本会成功,然后使用
UPDATE mysql.user SET authentication_string = PASSWORD(‘你想要的密码’) WHERE User = ‘root’ AND Host = ‘localhost’;这个命令来修改密码
6.警告!!!!!!
如果不用密码就能登录,输入了密码反而不能登陆的情况下,说明数据库里面有很多的空用户,先把空用户给删除掉( delete from user where USER=’’;),就能操作数据库了,并且删除之后记得flush privileges!!!当然如果你连use mysql这个操作都用不了,先看下第5步
如果设置密码出现:Your password does not satisfy the current policy requirements这个错误;(这个错误主要说密码强度不够)
你可以使用
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=6;这两个命令来改变规则,然后再改密码;
改完密码一定记得flush privileges!!
能够登录之后使用,’%'就是代表所有的IP都能连接
如果这条语句出现一个主键什么的错误,说明那个百分号已经存在,使用下面的的语句就可以解决,
接着就要去改mysql-server的字符编码,其实这一步登录进去就可以做了,
关键步骤看上表。记住要把那句话加在my.cnf里面的mysqld的下面,接着重启数据库服务,使用下面的命令开启远程登录 :
grant all privileges on . to root@’%'identified by '123456’with grant option
如果你出现了Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50540, now running 50724. Please use mysql_upgrade to fix this error.
不要慌,在linux文本页面输入:mysql_upgrade -u root -p 但是解决这个错误之前必须把密码的问题搞定。
然后还有一个防火墙问题,在centos7,默认的使用firewalld,而不是iptables,所以先要关闭firewalld服务,或者直接使用firewalld,然后开启3306端口(这个可以去百度,不赘述了哈~)
端口问题:记得在阿里云服务器实例安全组里面添加出口规则,把那些常用的8080/8080,80/80,3306/3306,之类的端口都打开,默认用户都填0.0.0.0/0就行了
还有记得在linux上开启3306端口,当然,前面tomcat用到的8080也要配置
接着开启3306端口
接着就远程连接mysql服务器,我使用的是sqlyog,创建一个新连接,sql主机地址就填阿里云上的公网ip,密码就是刚刚在xshell里面设置的密码,连接就行了。如果错误的话,自己检查下mysql服务有没有开,或者端口有没有开,或者阿里云安全组有没有配置规则。
结束!