LNMP环境

Linux 安装mysql-5.7.29 Linux下安装mysql单机

sh_c_2450957609 2020-02-04 05:26:01 2084 收藏 6
分类专栏: 服务器部署 SQL 数据库
版权
安装的mysql 版本是:mysql-5.7.29-linux-glibc2.12-x86_64

!](https://img-blog.csdnimg.cn/263a3b14fa8b4dc8afdd24979eae8ed9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rGC5L2g5Yir5YG35oeS,size_20,color_FFFFFF,t_70,g_se,x_16)
在这里插入图片描述
在这里插入图片描述

使用root权限操作

第一步:下载
两种方式

1、

进入官网 https://dev.mysql.com/downloads/mysql/5.6.html#downloads

上图显示第一个是二进制源码包,第二个是二进制测试包,第三个是源码包。我们选择第一个二进制版本的mysql是已经编译好的,无需 configure ,make make install 等步骤,只需配置一下即可使用,卸载也方便,直接删除即可。可以自行调整编译参数,最大化地定制安装结果。

下载之后,通过上传的方式上传到你服务器指定的目录即可/usr/local/

2、

在你要放置安装包的目录下执行

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
第二步:解压并移动
首先说一下,移动不是必须的,但是我后面的配置里有指定文件目录,并且在Mac上安装mysql 默认也会放到 /usr/local ,所有最好按我的来。

解压

tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
#移动

mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
重命名(改名和软连接,二选一)

mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql5.7
想弄软连接命令 :

ln -s mysql-5.7.29-linux-glibc2.12-x86_64/ mysql5.7
第三步:创建 用户,并给数据目录赋予权限
创建mysql组和用户

groupadd mysql;
useradd -r -g mysql mysql;
#创建mysql数据目录 / 回到根目录

mkdir -p /opt/db/mysql/data

#赋予权限

chown mysql:mysql -R /opt/db/mysql/data
第四步:配置参数
执行

vim /etc/my.cnf然后 按 i 进入编辑模式,清空原来的文字,并把下面内容复制进去

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
#basedir=/opt/db/mysql #这个配置会导致启动不了
basedir=/usr/local/mysql
datadir=/opt/db/mysql/data
socket=/tmp/mysql.sock
log-error=/opt/db/mysql/data/mysql.err
pid-file=/opt/db/mysql/data/mysql.pid
explicit_defaults_for_timestamp=true

#character config
character_set_server=utf8mb4
symbolic-links=0

lower_case_table_names=1
sql_mode=‘STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’
编辑完后 按esc 后按住 shift+: 输入 wq表示保存并退出 :wq!

添加全局变量
vim /etc/profile 添加一行
export PATH=$PATH:/usr/local/mysql/bin
然后
source /etc/profile

第五步:初始化mysql
cd /usr/local/mysql/bin/
mkdir -p /opt/db/mysql/data/


./mysqld --defaults-file=/etc/my.cnf --basedir=/opt/db/mysql --datadir=/opt/db/mysql/data/ --user=mysql --initialize
查看mysql.err初始密码,复制出来

#cat /data/mysql/mysql.err
cat /opt/db/mysql/data/mysql.err

在这里插入图片描述

创建开机启动脚本

cd /usr/local/mysql/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld #错误 unit not found
chkconfig --add mysqld
chkconfig --level 35 mysqld on
第六步:启动mysql,并更改root 密码
启动

service mysqld start
service mysqld reload #重新加载 配置文件
#service mysqld stop #停止
查看是否启动

ps -ef|grep mysql #查看mysql 进程

netstat -ano |grep “3306” #查看3306端口
更改密码

cd /usr/local/mysql/bin
./mysql -u root -p

mysql -u root -p

提示输入密码,把刚才临时的密码粘过来。

在这里插入图片描述

然后执行修改密码与root用户,主机host ip,并刷新

执行以下内容:
SET PASSWORD = PASSWORD(‘Abc1234%’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
flush privileges;
use mysql;
select Host,User from user where User = “root”;

#退出mysql>
quit;或者exit;
#关闭mysql
shutdown;
修改MySQL用户密码
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行

#SET PASSWORD FOR ‘用户名’@‘主机’ = PASSWORD(‘密码’);
创建远程访问新用户并授权:

#注意这里,需要设置具体的主机IP来登录mysql错误的话,登录不上。
#grant all privileges on . to ‘用户名’@’%’ identified by ‘密码’ with grant option;
grant all privileges on . to ‘root’@’%’ identified by ‘Abc1234%’ with grant option;

flush privileges;

到这里就结束了,如果想关闭mysql 执行 service mysqld stop

启动:service mysqld start
停止:service mysqld stop
重启:service mysqld restart
重载配置:service mysqld reload
注意事项:

如果以上步骤有权限问题,可执行以下命令,还有把开启自起打开

出现unit not found 可以检查/etc/init.d/mysql是否存在,若否,
find / -name mysql.server
cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysql
cp ./support-files/mysql.server /etc/init.d/mysqld
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysqld
还有在安装前如果你的系统有Mariadb,就要卸载

第一条命令用来查看,如果有就用下面的命令卸载

rpm -qa|grep mariadb

部署问题
1、有异常提示:TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details

(本文档前面部分已经配置)解决办法:

配置文件增加

[mysqld]

explicit_defaults_for_timestamp=true

2、连接报错
[root@testfy bin]# ./mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

解决方法参考
mysql服务没有启动,启动即可。

3、服务器端连接 提示ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
解决:修改配置文件
socket=/var/lib/mysql/mysql.sock

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

4、登录的时候提示1045
[root@localhost ~]# !my
mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
解决:有可能是创建远程访问新用户并授权这里设置的IP有问题。

参考如下配置:
https://www.cnblogs.com/zhongyehai/p/10695334.html
在这里插入图片描述

错误的密码:

在这里插入图片描述

解决方案:
vim /etc/my.cnf文件;
在[mysqld]后添加skip-grant-tables(登录时跳过权限检查)

在这里插入图片描述

重启MySQL服务:sudo systemctl restart mysqld
在这里插入图片描述

修改密码
在这里插入图片描述
在这里插入图片描述

登录mysql,输入mysql –u root -p;直接回车(Enter)
在这里插入图片描述

输入:set password for ‘root’@‘localhost’=password(‘Abc1234%);
如果报:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
在这里插入图片描述

输入:flush privileges;
!](https://img-blog.csdnimg.cn/9c2c0966461a4ad89b2470ca6a7c8179.png)

再次输入:set password for ‘root’@‘localhost’=password(‘Admin123@qwe’);
在这里插入图片描述

为避免麻烦,再次设置远程访问
在这里插入图片描述

退出:exit

再把my.ini的skip-grant-tables删除或者注释掉
在这里插入图片描述

重启MySQL:sudo systemctl restart mysqld

在这里插入图片描述

再次连接,成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值