Linux 安装 mysql
1、检查是否已经存在 mysql
#查看 mysql
rpm -qa | grep mysql
#卸载 mysql,mysql8 为上一步查看显示的结果
rpm -e --nodeps mysql8
PS:
rpm命令:是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。
-a:查询所有套件;-q:使用询问模式,当遇到任何问题时,rpm指令会先询问用户;-e:删除指定的套件;--nodeps:表示忽略依赖关系,使用--nodeps选项可以强制卸载,即使有其他的软件包依赖于它。这样做可能导致系统中其他部分出现问题或功能异常,因为那些依赖于被卸载软件包的程序可能无法正常运行。在生产环境不推荐使用--nodeps选项,这里是我自己的测试环境,所以加上了。
2、下载官网的安装包
官网地址:downloads.mysql.com/archives/co…,下载对应版本的安装包。
如果不知道服务器系统的版本,可以使用如下命令进行查询:
uname -a
3、将文件上传到服务器任意目录并解压
使用 sftp 工具将安装包上传到服务器
解压
进入 /usr/local/ 文件夹下,输入如下命令解压:
tar -xvf /home/mysql/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz
tar命令 可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。
首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。
为什么要区分这两个概念呢?这源于Linux中很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar命令),然后再用压缩程序进行压缩(gzip bzip2命令)。
-x:表示告诉tar要执行解压操作,当你想要从一个.tar文件中提取文件和目录时,使用这个选项。-v:这个选项表示详细模式。当使用这个选项时,tar会在执行过程中输出详细的信息,包括正在处理的文件名。-f:这个选项用来指定你想要操作的.tar文件。
解压完成后,使用如下命令,给解压好的文件夹修改名字:
mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql
4、创建 data 目录
mkdir /usr/local/mysql/data
5、创建 Mysql 用户组和用户
# 进入 mysql 目录
cd /usr/local/mysql/
# 添加用户组
groupadd mysql
# 添加用户, `-g` 选项是指定用户所属的群组
useradd -g mysql mysql
6、更改权限
在Linux中,每个文件和目录都有一个所有者和一个所属组,它们决定了哪些用户可以访问、修改或执行这些资源。
可以使用如下命令,将 mysql 的权限分配给上面创建的用户:
chown -R mysql:mysql /usr/local/mysql
7、配置环境
查找 my.cnf 文件:
find /etc/ -name 'my.cnf'
如果没有则使用如下命令创建:
touch /etc/my.cnf
如果有,直接编辑
# 如果没有安装 vim 指令可以使用 yum install -y vim 安装
# 或者使用 vi 指令
vim /etc/my.cnf
配置文件示例如下:
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set=utf8
[mysqld]
# 启用时间戳的自动获取
explicit_defaults_for_timestamp=true
# 设置端口
port=3306
# 设置 mysql 的安装目录
basedir=/usr/local/mysql
# 设置 mysql 数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端默认的字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
socket=/usr/local/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/log/error.log
[client]
port=3306
socket=/usr/local/mysql/mysql.sock
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
注意
mysql的安装位置。
8、初始化
进入 mysql 安装目录的 bin 目录(第二条命令不要忘记修改自己的 mysql 安装目录)。
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --initialize
如果执行初始化命令会提示报错信息:
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory则使用一下命令,安装对应的文件,再执行初始化命令:
yum install -y libaio.so.1 #如果执行了上边的命令不能解决,那么在执行下边的即可 yum install -y libaio
如下图所示即表示成功初始化,记住初始化密码:
9、加入系统服务
# 修改为你自己的 mysql 安装目录
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
10、启动 Mysql,修改密码
service mysql start
如果遇到权限错误,可再执行一次更改权限操作。
使用如下命令进入 mysql:
# 在 /usr/local/mysql/bin 目录下执行一下命令,你可以替换为自己的 mysql 安装目录
./mysql -u root -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-- 刷新权限
flush privileges;
11、配置远程访问
使用刚才设置的密码进行登录,登录成功后输入下面的命令:
use mysql;
select user,host,plugin,authentication_string from user;
# mysql8认证方式改了,mysql_native_password这个才能远程连接mysql
# alter user 'root'@'%' identified with mysql_native_password by 'root';
# 因为我安装的是 mysql5.7 所以使用下面的语句配置远程访问用户
grant all privileges on *.* to root@'%' identified by "123456";
flush privileges;
12、测试连接
如果使用云服务器,记得开放
3306端口,不然无法访问。