阿里云(Linux)服务器安装MySQL

一.下载MySQL
进入mysql官网选择下载版本https://dev.mysql.com/downloads/mysql/

通过XFtp上传到阿里云服务器上,因为下载的是tar.xz压缩文件所以要先将xz文件解压为tar文件,在进行解压。我这里是将文件放在了自己创建的/data/software/目录下。

3.将解压后的将文件放在/usr/local/目录下,并且命名为mysql。
命令如下:mv /data/software/mysql-8.0.32-linux-glibc2.12-x86_64 /usr/local/mysql
4. 通过mkdir /data/mysql命令在data目录下创建一个mysql文件夹用来存放mysql存储的所有数据库文件,我这边已经创建好了。

5. 执行:groupadd mysql命令添加mysql的组别。
再执行:useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql 命令。
6. 切换到mysql的安装目录:cd /usr/local/mysql

7.改变目录属有者
执行:chown -R mysql .
执行:chgrp -R mysql .
执行:chown -R mysql /data/mysql

8.配置mysql参数(数据库存储位置等信息)
先执行命令安装libaio:yum install libaio
再执行配置mysql参数命令:bin/mysqld –initialize –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql
(切记:直接完后,最后显示记录会显示出“初始密码”,将该密码复制存储起来后面连接数据库时要用到)
最后执行: bin/mysql_ssl_rsa_setup –datadir=/data/mysql

9.进入mysql安装目录的support-files文件夹下
执行命令:cd /usr/local/mysql/support-files

10.将support-files目录下的mysql.service复制到/etc/init.d/文件夹下并改名为mysql
命令:cp mysql.server /etc/init.d/mysql

11.修改/etc/init.d/mysql配置文件
命令:vim /etc/init.d/mysql
将数据库位置,和数据库存储位置告诉配置文件。

二.启动mysql数据库
1.启动mysql服务器
执行命令:/etc/init.d/mysql start(或者service mysql start)

2.进入mysql数据库
执行命令:mysql -hlocalhost -uroot -p
《如果出现:-bash: mysql: command not found
就执行: # ln -s /usr/local/mysql/bin/mysql /usr/bin –没有出现就不用执行》
随后输入密码(密码是刚才生成的默认密码),输入密码时,是不显示的,输入后直接回车即可。
3.进入数据库后,暂时不允许查询数据库的操作,先通过修改user表password后才能对数据库操作。(也就是要强制你修改密码)
通过user表修改密码,这边就不说了,百度一下都有的。

2.执行命令
切换数据库

mysql> use mysql;

查询host
mysql> select user,host from user;
 

4.创建host
如果没有”%”这个host值,就执行下面这两句:
mysql> update user set host=’%’ where user=’root’;
mysql> flush privileges;

MySQL8.0允许外部访问

一、前置条件:

按照https://blog.csdn.net/h996666/article/details/80917268安装完MySQL之后。

二、开始修改配置:

1,登进MySQL之后,

2,输入以下语句,进入mysql库:

use mysql

3,更新域属性,’%’表示允许外部访问:

创建host
如果没有”%”这个host值,就执行下面这两句:
mysql> update user set host=’%’ where user=’root’;
mysql> flush privileges;

update user set host='%' where user ='root';

4,执行以上语句之后再执行:

FLUSH PRIVILEGES;

5,再执行授权语句:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;

然后外部就可以通过账户密码访问了。

6,其它说明:

FLUSH PRIVILEGES; 命令本质上的作用是:

将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

MySQL用户数据和权限有修改后,希望在”不重启MySQL服务”的情况下直接生效,那么就需要执行这个命令。

通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。

而不必冒太大风险。

三、可能存在的其它问题:

执行完之后,再用Navicat连接mysql,报错如下:

Client does not support authentication protocol requested by server;

报错原因:

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式Navicat 12以下客户端不支持;

Navicat 12以下客户端支持的是mysql_native_password 这种加密方式;

解决方案:

1,用如下语句查看MySQL当前加密方式

select host,user,plugin from user;

查询结果

+-----------+------------------+-----------------------+
| host      | user             | plugin                |
+-----------+------------------+-----------------------+
| %         | root             | caching_sha2_password |
| localhost | mysql.infoschema | mysql_native_password |
| localhost | mysql.session    | mysql_native_password |
| localhost | mysql.sys        | mysql_native_password |
+-----------+------------------+-----------------------+

看第一行,root加密方式为caching_sha2_password。

2,使用命令将他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';

再次连接的时候,就成功了。

四、如果还连接不上

通过以上操作后,依然无法连接上,问题可能出在了防火墙上。

1,MySQL部署在实体服务器上解决方案如下: a.开放MySQL的端口号,默认端口号是3306。 b.直接关闭防火墙(慎重操作,不建议。当然测试玩的话就随意了。。。。)

2,MySQL部署在云计算机上的方案如下: a.以阿里云为例,找到实例,设置安全组,开放端口号即可。

三.系统配置,以及开机自动启动mysql服务器
1.进入系统全局配置文件 :vim /etc/profile
添加内容:export PATH=/usr/local/mysql/bin:$PATH
注意:此处path中的mysql就是你mysql安装的位置
保存文件,执行:source /etc/profile
使配置立刻生效。

配置mysql自动启动
chmod 755 /etc/init.d/mysql
chkconfig –add mysql
chkconfig –level 345 mysql on
3.最后在阿里云服务器中添加安全组,允许访问3306端口

四.总结
1.我喜欢把所有软件包放在/data/software目录下
2.在/usr/local目录下安装软件的安装位置(例如:/usr/local/mysql)
3.将mysql数据库存储放在/data/mysql目录下
 

版权声明:本文为博主作者:Magicflowersbloom原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/qq_42046421/article/details/131520186

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
扎眼的阳光的头像扎眼的阳光普通用户
上一篇 2024年1月16日
下一篇 2024年1月16日

相关推荐