CentOS7中默认安装了MySQL系列的数据库,需要先卸载掉。
查看当前安装的mariadb包:
[root@bogon desktop]# rpm -qa | grep mariadb
将它们统统强制性卸载掉:
[root@bogon 桌面]# rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
在官网下载RPM安装包,http://dev.mysql.com/downloads/mysql/,下载完成后解压。
双击安装MySQL-server,MySQL-client和MySQL-devel三个安装包。
2. 启动MYSQL
[root@bogon desktop]#service mysql start
得到错误:ERROR!The server quit without updating PID file
我们这里主要是因为:selinux惹的祸,如果是centos系统,默认会开启selinux。解决方法是关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器。
然后再启动mysql就没问题了:
[root@bogon desktop]#service mysql start
查看MySQL运行状态:
[root@bogon desktop]# service mysql status
SUCCESS! MySQL running (2377)
3. 设置密码
安装之后root用户默认没有密码,通过命令设置密码。
[root@bogon desktop]# /usr/bin/mysqladmin -u root password 'passok'
然后设置root用户的远程访问权限
在mysql控制台执行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION
FLUSH PRIVILEGES
4.开启远程连接
需要安装iptables,
yum install -y iptables
然后编辑系统的开放端口列表,增加3306端口,重启防火墙即可。
mysql宕机主要有两个原因:1.内存被其它进程大量占用,或数据库本身数据量太大导致mysql宕机
2.程序访问mysql后没有执行mysql.close,大量占用资源导致宕机。
群里提出的这个问题主要是mysql5.5以上的,基本上不是mysql宕机。因为5.5以上的数据库会有个链接超时配置。
默认是28800秒也就是8个小时,会断开连接。
解决方案:
1.修改mysql配置。
如果是linux服务器编辑mysql.cnf 执行vi /etc/mysql.cnf
找到[mysqld] 在底下添加
interactive_timeout=28800000
wait_timeout=28800000
多加了三个0 也就是8000个小时。基本就不用考虑连接超时
修改完配置后,记得重启mysql服务。
2.程序方面。
以java程序为例(抱歉只会java)
打开Spring配置文件,修改applicationContext.xml
在datasource bean底下添加
用来指定测试连接所使用的SQL语句。
如果测试发现连接已经close,那么将自动重建连接。
<property name="houseKeepingTestSql">
<value>SELECT 1</value>
</property>
用来指定在使用连接之前要进行测试。
<property name="testBeforeUse">
<value>true</value>
</property>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)