Linux服务器安装mysql5.6
在Linux服务器安装mysql步骤 官网
准备工作
- 服务器常运行
- ssh连接上
1. 下载官方的rpm包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
2. 安装rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
3. 安装mysql
//会自动安装一堆依赖
yum -y install mysql-server
//然后检查是否安装成功
rpm -qa|grep mysql
//然后启动mysql
service mysqld start
4. 重置密码
//安装完之后登录
mysql -u root
- 会报错如下: ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
//将创建者修改为当前用户即可解决
cd /var/lib
chown -R root mysql
//修改完之后重启mysql服务,不然还是会报错无法登入
service mysqld restart
//再次登入mysql重置密码
mysql -u root -p
>直接回车进入
mysql > use mysql;
mysql > update user set password=password('root') where user='root';
mysql > flush privileges;
mysql > exit;
//再次重启mysql
service mysqld restart
5. 关闭防火墙
//firewall-cmd --state(关闭)就好了
//关闭防火墙适用于tomcat,nginx等
vim /etc/sysconfig/iptables
#增加3306端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
//重启防火墙
service iptables restart
//查看状态
service iptables status
6. 设置外网访问权限
mysql -u root -p
> 输入密码(root)
//查询用户
mysql > select user,host from mysql.user;
//(根据需要可跳过此步骤)创建子账号abc密码123456的用户
mysql > create user abc@localhost identified by '123456';
//创建db名为mytcya
mysql > CREATE DATABASE IF NOT EXISTS mytcya DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
//查询是否创建db成功
mysql > show databases;
//允许用户root使用密码root远程访问名为mytcya的db
mysql > grant all privileges on mytcya.* to root@localhost identified by 'root' WITH GRANT OPTION;
//如果远程连接会报错, 再次进入mysql
//java.sql.SQLException: null, message from server: "Host 'xxx.xxx.xxx.xxx' is not allowed //to connect
//切换到mysql
mysql > use mysql
mysql > show tables;
//会显示一堆表
//查询user列表
mysql > select host,user,password from user;
//删除空密码
mysql > delete from user where USER='';
//将任何host添加可访问
mysql > update user set host ='%' where user ='root';
//如果出现错误提示: ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
//直接忽略他
//刷新退出
mysql > flush privileges;
mysql > quit;
//再次重启mysql
service mysqld restart
- 重要: 修改配置文件不然数据库8小时无访问会锁定无法连接
//修改MySQL的参数,wait_timeout最大为31536000即1年,在/etc/my.cnf中加入:
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
重启生效,需要同时修改这两个参数。
//再次重启mysql
service mysqld restart
7. 使用连接软件测试
jdbc:mysql://你的服务器IP:3306/root?characterEncoding=utf-8&serverTimezone=UTC
- 显示成功!
一些mysql出错解决办法
ERROR 2002 (HY000): Can,t connect to local MySQL server through socket
/tmp/mysql.sock
解决办法修改/etc/my.cnf , 并且给/usr/local/mysql/data权限
//------修改内容增加[client]------start------
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock(跟这个socket路径一样)
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
//------修改内容增加[client]-------end---------
//kill -9 命令无法杀死 mysql 进程,因为 mysqld_safe 会自动重启 正确关闭命令如下:
/usr/local/mysql/bin/mysqladmin shutdown
//检查 mysql 服务状态
/usr/share/mysql/mysqladmin status
//(可选)查看Mysql 运行状态
service mysqld status
//(重要)解决不了的问题, 就去查看错误日志, 再百度搜索相关错误信息
cat /var/log/mysqld.log
//报错Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
rm -rf /var/lib/mysql/mysql.sock
ln -s /var/lib/mysql/mysql.sock
//查看端口占用
netstat -tnlp | grep :8080
//删除sql 不检查依赖
rpm -e --nodeps
//查看mysql的安装情况
rpm -qa|grep -i mysql
//手动删除mysql配置文件
rm -rf /etc/my.cnf
//删除遗留的mysql文件和依赖库
find / -name mysql
rm -rf /var/lib/mysql
//检查一遍mysql 是否成功删除
rpm -qa|grep -i mysql