一、先去官网下载mysql 下载地址(https://dev.mysql.com/downloads/mysql/5.7.html#downloads)
下载mysql
点击上图的Download之后进入到下图,选择下图的红色框框后便会开始下载。
二、上传到服务器并解压.
我自己上传到服务器的 /usr/local 这个路径下面.
接下来使用 tar -zxvf mysql-5.7.21-linux-glbc2.12-x86_64.tar.gz 命令解压。
解压命令
解压之后获取到下图的mysql文件。
接下来需要使用 mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql 这个命令将文件夹名字改为mysql (改什么名字可以自己定)
修改文件夹名字
三、接下来进入到mysql文件夹,进行一系列操作
进入mysql文件夹命令 cd /usr/local/mysql
命令:cd /usr/local/mysq
接下来开始操作:
1.添加用户组和用户名
#添加用户组
groupadd mysql
#添加用户mysql 到用户组 mysql
useradd -r -g mysql mysql
.
2.在/usr/local/mysql文件下面新建data文件夹,以后的数据库文件将放在这里.
新建命令 mkdir data
3.分发权限 命令 chown -R mysql:mysql ./
chmod -R 755 ./
4.初始化mysql 命令: ./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
初始化
注意这一步正常有可能会抛错误:
如果出现下面的错误 就需要 命令: yum -y install numactl
yum -y install numactl
然后安装完再重新执行初始化mysql命令就好了。
5.#将mysql/目录下除了data/目录的所有文件,改回root用户所有
命令: chown -R root .
#mysql用户只需作为mysql/data/目录下所有文件的所有者
chown -R mysql data
6.复制启动文件
命令: cp support-files/mysql.server /etc/init.d/mysqld
再给复制过去的文件分配权限 命令: chmod 755 /etc/init.d/mysqld
再拷贝另外一个文件 命令: cp /usr/local/mysql/bin/my_print_defaults /usr/bin/
7.修改启动脚本 命令: vi /etc/init.d/mysqld
#修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data
port=3306
通过上面的修改启动脚本命令进入下图: 端口加不加都可以,默认就是3306
8.启动mysql服务 命令: service mysqld start
service mysqld start
注意如果这里启动报错如下图的话,或者报错的话 安装一波mariadb. 命令:yum install libaio-devel.x86_64
正常的话安装完成后,再启动服务会成功的。再出现其他错误只能百度了。因为我目前就遇到这些错误.
8.2、错误2
错误2
解决方法: 我们进入到/var/log目录下手动创建一个目录mariadb,然后再进入mariadb目录下手动创建mariadb.log文件
另外如果启动出现我下面这种情况,你可以先进行接下来第9步操作去配置/etc/profile文件,然后再重新启动就正常啦。(我是这么解决的)
8.3、错误3
错误3
解决方法:到/var/lib目录下创建出mysql目录
9.#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
#命令vi /etc/profile 将你的mysql的bin目录配上
#配置完成后再通过命令: source /etc/profile 刷新配置
通过vi /etc/profile 命令进入到下图的文件,在文件底部加一行: export PATH=$PATH:/us r/local/mysql/bin
注意:/usr/local/mysql/bin 这个路径是我自己的mysql路径,如果你的mysql装在其它文件夹,就填写对应的路径
四、接下来解决数据库密码的部分,因为正常情况下数据库默认是没密码的。但是总有意外
1.首先命令: mysql -u root -p 进入数据库
然后发现要输入密码,什么都不填写直接空格,还是会说我密码错误.
2.接下来介绍一种比较方便,也比较暴力的修改手法.
先停止掉mysql服务 命令:service mysqld stop
接下来使用命令: mysqld_safe --skip-grant-tables &启动mysql服务
上面的命令意思是绕过登录进入到mysql。
3.如果你不想使用命令的话,那么你可以停止服务后,去修改/etc/my.cnf文件配置 在[mysqld]的段中加上一句:skip-grant-tables 然后再启动mysql服务也能达到同样的效果
4.接下来通过命令方式启动
然后可以通过ctrl + c出来,然后输入命令:mysql进入到mysql系统,再去修改密码
5.修改密码:先通过命令:use mysql; 表示选择mysql这个库(敲mysql命令别漏了分号)
然后使用命令:update user set authentication_string=password("新密码") where user='root';
注意:mysql5.7.24版本里面密码字段变了,由以前的password编程authentication_string。(这个坑了我好久)
update命令成功后,再输入命令: flush privileges;表示这次更新立即生效
接下来你退出当前启动mysql服务的方式,再重新正常命令:service mysqld start启动服务,再用你修改后的密码登录便能成功登录进去.
但是也有一种可能,你登录的时候会出现以下错误,意思是你的密码过期了.
解决方法:通过之前的绕过登录方式进入到数据库,查询mysql系统表 命令:select * from mysql.user where user = 'root' \G;
你就会发现有这么一个字段password_expired,如果是Y的话那么就是过期的。
可以通过命令: update mysql.user set password_expired='N' where user ='root';
然后刷新:flush privileges;
就可以正常登录了
又或者当你登录进去,你想查看系统表的时候出现以下错误。(意思应该是不是root用户操作不了吧)
解决方法:通过命令: alter user 'root'@'localhost' identified by 'root';然后再刷新下就可以了;
五、接下来要远程连接到服务器数据库.
通过命令:grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
然后刷新: flush privileges;
然后打开vi /etc/my.cnf
将bind-address = 127.0.0.1
设置成bind-address = 0.0.0.0(设备地址)
重新启动(命令如下):
service mysqld stop
service mysql start
就可以通过navicat连接上去啦!
有什么不懂的话就加我的微信吧!18924299091