- 1.把安装包放入/usr/local/下
- 2.解压
tar -xzvf mysql-5.7.19-linux-glibc2.12-x86_64.tar
- 3.给解压后文件改名
mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/masql
- 4.为centos添加mysql用户组和mysql用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限):
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
- 5.进入安装mysql软件的目录:
cd /usr/local/mysql
- 6.修改当前目录拥有者为新建的mysql用户:
chown -R mysql:mysql ./
- 7.安装mysql,命令如下:
./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
安装成功后,记住随机密码
- 8.开启mysql服务,命令如下:
./support-files/mysql.server start
如果开启mysql服务失败,报什么路径找不到,那是因为mysql启动时,会读mysql的配置文件/etc/my.cnf,因为里面的初始路径不对
修改内容如下,datadir和socket都修改成mysql的安装目录下,增加[client]板块,用于命令行连接mysql数据库
- [mysqld]
- port=3306
- datadir=/usr/local/mysql/data
- socket=/usr/local/mysql/mysql.sock
- user=mysql
-
- max_connections=151
-
- federated
-
- # Disabling symbolic-links is recommended to prevent assorted security risks
- symbolic-links=0
-
- # 设置忽略大小写
- lower_case_table_names = 1
-
- # 指定编码
- character-set-server=utf8
-
- collation-server=utf8_general_ci
-
- # 开启ip绑定
- bind-address = 0.0.0.0
-
- [mysqld_safe]
- log-error=/var/log/mysqld.log
- pid-file=/var/run/mysqld/mysqld.pid
-
- #指定客户端连接mysql时的socket通信文件路径
- [client]
- socket=/usr/local/mysql/mysql.sock
-
- default-character-set=utf8
如果MySQL 启动不了,始终显示“The server quit without updating PID file”,很多人不知道什么原因,只能一步一步去排查。
解决方法 :
-
给予权限,
执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新启动mysqld
2.可能进程里已经存在mysql进程
用命令“ps -ef | grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。
去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,
打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data
5.skip-federated字段问题
检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
6.错误日志目录不存在
使用“chown” “chmod”命令赋予mysql所有者及权限
7.selinux惹的祸,如果是centos系统,默认会开启selinux
关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。 -
9.将mysql进程放入系统进程中,命令如下:
cp support-files/mysql.server /etc/init.d/mysqld
- 10.重新启动mysql服务,命令如下:
service mysqld restart
- 11.使用随机密码登录mysql数据库,命令如下:
先把mysql的命令设置为环境变量
/etc/profile中添加语句:
export PATH=$PATH:/usr/local/mysql/bin
编译/etc/profile
source /etc/profile
登录mysql
mysql -u root -p
等待系统提示,输入随机密码,即可登录,
mysql随机密码忘记的处理方式:
1.修改配置文件my.cfg
vi /etc/my.cnf
找到mysqld在之后添加
skip-grant-tables
保存退出
-
重启mysql服务
service mysqld restart
3.直接登陆mysql而不需要密码
mysql -u root (直接点击回车)
4.在mysql中输入
update mysql.user set password=password(‘egis_2018’) where user=‘root’;
5.如果提示ERROR 1054 (42S22): Unknown column ‘password’ in ‘field list’。
原来是mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
update mysql.user set authentication_string=password(‘123456’) where user=‘root’ ;
6.执行flush privileges
7.退出mysql ,到my.cgf中把开始添加的skip-grant-tables去掉
8.重启mysql服务
9.当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your password using ALTER USER statement;
当你执行了SET PASSWORD = PASSWORD(‘123456’);
出现:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
10.你需要执行两个参数来把mysql默认的密码强度的取消了才行
set global validate_password_policy=0;
set global validate_password_mixed_case_count=2;
11这是你在执行
SET PASSWORD = PASSWORD(‘123456’); -
12.进入mysql操作行,为root用户设置新密码
alter user ‘root’@‘localhost’ identified by egis_2018’;
- 13.设置允许远程连接数据库,命令如下:
先选择数据库
use mysql
update user set user.Host=’%’ where user.User=‘root’;
查看修改后的值
select user,host from user;
- 14.刷新权限,命令如下:
flush privileges;
- 15、开启3306防火墙端口或者关闭防火墙,然后即可远程连接mysql
关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
- 16、如果还是无法远程连接,查看/etc/my.cnf
找到bind-address = 127.0.0.1这一行
改为bind-address = 0.0.0.0即可