Linux阿里云ECS中安装MySQL7及配置MySQL7开机自启动

目录

安装步骤

下载

上传

解压

重命名解压包

创建mysql用户组和用户

创建数据目录并赋予权限

修改配置文件

初始化数据库

查看root用户默认密码

启动mysql

添加系统服务、配置开机自启 - init.d

登录mysql

修改root初始用户密码

添加系统服务、配置开机自启 - systemctl

修改密码

补充

Navicat测试连接


安装步骤

下载

官网下载你先要的mysql版本,官网下载地址 

上传

上传到想要安装的目录,我上传到了 /usr/local 目录

解压

cd  /usr/local 

使用如下命令解压:

tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz

重命名解压包

将解压包重命名为mysql:

mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql

创建mysql用户组和用户

创建用户组:

groupadd mysql

创建用户:

useradd -r -g mysql mysql

以上两个mysql的含义分别为:mysql[用户组] mysql[用户名],更多参数参考 Linux —— useradd -g mysql mysql解析及useradd详解_洛丹伦的夏天-CSDN博客

创建数据目录并赋予权限

创建目录:

mkdir -p  /data/mysql

目录赋权: 

chown mysql:mysql -R /data/mysql
chown mysql:mysql -R /use/local/mysql

通常都会将数据存放目录外置到别的目录,这样子升级mysql不会影响历历史数据。

修改配置文件

vim /etc/my.cnf

把默认的内容删掉,改为下面的内容即可,当然你也可以按照自己的需求定制。

[mysqld]
bind-address=0.0.0.0
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8
symbolic-links=0
[client]
default-character-set=utf8
socket=/tmp/mysql.sock
[mysql]
default-character-set=utf8

初始化数据库

初始化数据库前先安装下这个东东 

yum -y install libaio 

然后进入bin目录:

cd /usr/local/mysql/bin/

初始化:

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看root用户默认密码

cat /data/mysql/mysql.err

 默认随机密码如上会打印到控制台。

启动mysql

/usr/local/mysql/support-files/mysql.server start

添加系统服务、配置开机自启 - init.d

上面启动服务要先进入 support-files 目录,再执行mysql.server start 进行启动,我们执行如下指令后,可以将mysql添加到系统服务,我们在任意目录都可以启停mysql服务。

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

然后,授予执行权限:

chmod +x /etc/init.d/mysql

添加服务开机自启:

chkconfig --add mysql

我们使用如下命令查看是否已添加服务自启动:

至此我们已经完成了mysql的安装及配置开机自启动。

登录mysql

mysql -u root -p

执行登录我们发现,登录不了,提示我们:-bash: mysql: command not found

我们执行如下指令添加软连即可:

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

密码为初始化的时候生成的随机密码串。

登录成功后,如下:

 修改root初始用户密码

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

注意我们在进行数据库操作前要先修改下初始密码,否则会提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 添加系统服务、配置开机自启 - systemctl

首先,添加系统服务配置:

cat > /usr/lib/systemd/system/mysqld.service <<EOF
[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF

然后指定开机自启动:

systemctl enable mysqld

 修改密码

先登录到mysql:

mysql -uroot -p

输入密码登录后,切换数据库:

use mysql

 然后,使用如下两种方式都可以修改密码。

方式一:

set password for 'root'@'%'=password('111111');

方式二:

update user set authentication_string=password('111111') where user='root' and host='localhost';

注意上面方式一中'root'@'%' root和% 和 方式二where条件中的user和host根据实际情况来,可以通过如下命令查看:

select Host,User from user;

补充

上面我们为了在任意目录执行 mysql -uroot -p 登录,我们添加了软连,当然,除了添加软你也可以配置环境变量,步骤如下:

一、编辑 profile 文件:

vim /etc/profile

二、profile文件末尾添加如下代码:

export PATH=$PATH:/usr/local/mysql/bin

  /usr/local/mysql/bin 为mysql的安装目录,配置完成后别忘了执行 source profile 使配置生效。

三、使配置生效

source profile

Navicat测试连接

如果连不上数据库可能原因:

1.阿里云安全组中开放3306端口。

2.如果是在虚拟机中装的关闭防火墙。

3.root用户默认只能够本机访问,开放下对所有ip的访问限制。

关闭防火墙命令:

systemctl stop firewalld

开放所有ip的访问限制:

use mysql                                            #访问mysql库
update user set host = '%' where user = 'root';      #使root能再任何host访问
FLUSH PRIVILEGES;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值