mysql5.7新增特点:
最新版本的mysql5.7相比较于mysql5.6,新添加了一个特点:允许日期类型字段添加数值精确到毫秒位数,比如`create_date` datetime(3) DEFAULT NULL, 就是允许该字段的日期保留3位毫秒数。
yum执行安装成功
百度mysql yum源
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
yum install mysql-community-server Installing MySQL
vim /etc/my.cnf 更改mysql data存放目录: datadir=/home/data/mysql :wq! 强制保存并退出
service mysqld start 启动mysql
由于不知道mysql用户"root"的密码,设置跳过密码直接登录,通过vim /etc/my.cnf,增加skip-grant-tables参数
使用root用户无密码状态登录到mysql: mysql -u root -p
并使用mysql数据库: use mysql
grant all privileges on *.* to root@"%" identified by "123456"; 设置root用户的密码为123456
flush privileges; 最后刷新权限。
重新编辑/etc/my.cnf 还原到必须使用密码登录到mysql,把skip-grant-tables这一行注释移除掉
Esc按钮后,输入:wq! 强制保存并退出
exit 退出mysql登录
虚拟机重启后,启动mysql报错
查看mysql错误日志命令 tail -n 10 /var/log/mysqld.log
mkdir /var/run/mysqld 创建日志目录后,启动依旧失败,查看日志原因是该目录数组是root
修改该目录权限为mysql后,授权mysql用户:chown mysql.mysql /var/run/mysqld 启动mysql成功。
10038错误
远程登录navicat失败,报错10038,原因可能有两种:1:root用户不让远程登录,2:3306端口被防火墙屏蔽,没有对远程主机开放
修改user表root的信息,发现需要重设密码,密码必须包含大小写和特殊字符比如&*
在添加3306端口到防火墙之前,先执行安装iptables.service:
yum install iptables-services
安装之后出现文件/etc/sysconfig/iptables-config,编辑它,增加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙 service iptables restart
当虚拟机换了一个IP后,防火墙设置失效,需要重置3306端口为对外端口。
设置防火墙3306端口时,报错:
使用命令 modprobe iptables 查看如下:
解决方法:应用程序 -> 杂项 -> 防火墙
添加永久性质的防火墙3306端口,避免虚拟机重启后失效
读写权限不够的问题
错误:[ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 13 - Permission denied)
2017-02-19T03:50:30.274616Z 0 [ERROR] Can't start server: can't create PID file: Permission denied
解决方案:chown mysql.mysql /var/run/mysqld -R 授权mysql用户可以使用该目录