【MySQL】Linux普通用户安装MySQL教程

安装MySQL

安装步骤

步骤1 下载MySQL

通过官网下载匹配对应服务器系统及架构的MySQL安装包,官网下载地址https://downloads.mysql.com/archives/community/,选择对应安装包进行下载,或复制对应安装包下载地址直接在Linux服务器上下载,下载命令如下。

注意:下载时选择匹配自身Linux系统,架构和glibc版本的安装包,避免后继因版本不匹配导致一些不可预测的问题出现。

wget -P /path/to/directory <download_url>

其中:

  • -P /path/to/directory 指定下载文件的保存路径。
  • <download_url> 是要下载的文件的 URL。

例如,如果下载 mysql-8.2.0-linux-glibc2.28-aarch64.tar.xz 的安装包并保存到 /home/your_username/downloads 目录下

wget -P /home/your_username/downloads https://downloads.mysql.com/archives/get/p/23/file/mysql-8.2.0-linux-glibc2.28-aarch64.tar.xz

以下步骤中涉及到的文件名及文件目录,均使用此示例,自行配置时,请替换对应的文件名及文件目录。

步骤2 解压安装包到安装目录

# 解压安装包的命令如下
tar -xvf "/home/your_username/downloads/mysql-8.2.0-linux-glibc2.28-aarch64.tar.xz" -C "/path/to/mysql"

步骤3 设置环境变量

# 编辑环境变量文件
vim ~/.bashrc
# 在环境环境变量文件中增加MySQL环境变量,增加内容如下
export MYSQL_HOME=/path/to/mysql/mysql_8.2.0
export PATH=$MYSQL_HOME/bin:$PATH
# 保存退出编辑
:wq
# source环境变量
source ~/.bashrc

步骤4 创建配置文件

如果不创建配置文件,MySQL 默认访问/etc/my.cnf配置文件。

# 在安装目录下创建配置文件
vim /path/to/mysql/my.cnf

在配置文件中添加如下配置内容

[mysqld]
user=your_username
port=3306
basedir=/path/to/mysql/mysql_8.2.0
datadir=/path/to/mysql/data
plugin-dir=/path/to/mysql/mysql_8.2.0/lib/plugin
socket=/path/to/mysql/tmp/mysql.sock
log-error=/path/to/mysql/mysql.err
pid-file=/path/to/mysql/mysql.pid
server-id=1
enforce_gtid_consistency=on
gtid_mode=on
binlog_format=ROW
log_bin=mysql-bin
binlog_row_image=FULL
default_authentication_plugin=mysql_native_password

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

其中

  • /path/to/mysql/data/path/to/mysql/tmp/目录需要手动创建好。
  • socket属性配置的目的是指定mysql启动时的sock文件地址,如果不设置,默认访问/tmp/mysql.sock文件。
  • 其余配置项请自行查询了解,可以直接使用博主提供的默认值。

配置完成后,保存退出编辑。

步骤5 初始化数据库

mysqld --defaults-file=/path/to/mysql/my.cnf --basedir=/path/to/mysql/mysql_8.2.0 --datadir=/path/to/mysql/data --user=your_username --initialize

环境变量配置生效,此命令理论上可以在任意目录执行,如若执行提示无mysqld命令,也可切换到/path/to/mysql/mysql_8.2.0/bin目录下执行。

步骤6 启动MySQL

# 通过mysqld_safe启动
mysqld_safe --defaults-file=/path/to/mysql/my.cnf --user=your_username &
# 通过mysqld启动
mysqld --defaults-file=/path/to/mysql/my.cnf --user=your_username &

步骤7 查看root临时密码

cat /path/to/mysql/mysql.err | grep root@localhost

步骤8 登录MySQL

使用步骤7查询的root临时密码登录MySQL

# 通过如下命令登录MySQL
mysql --socket=/path/to/mysql/tmp/mysql.sock -uroot -p
# 输入临时密码

步骤9 修改root密码

alter user 'root'@'localhost' identified by '123456';

步骤10 创建可供远程连接的管理员用户

详细见目录:MySQL常见操作-创建可供远程连接的管理员用户

安装可能遇到的问题

1 mysqld: error while loading shared libraries: *: ELF load command alignment not page-aligned问题

错误描述:初始化MySQL时,报出如下错误

mysqld: error while loading shared libraries: libcrypto.so.3: ELF load command alignment not page-aligned
# 或
mysqld: error while loading shared libraries: libssl.so.3: ELF load command alignment not page-aligned

问题解决

以下步骤仅讲述libcrypto.so.3库文件报错的处理,libssl.so.3库文件报错处理与之类似。

步骤1:在root下使用find / -name libcrypto.so.3查询系统中是否有libcrypto.so.3库文件,当然如果查到MySQL安装目录中的不算。

步骤2-1:如果找到了libcrypto.so.3库文件,删除MySQL安装目录中的libcrypto.so.3库文件,建立名为上述删除的libcrypto.so.3库文件路径的软链接,软连接的目标文件或路径为上述找到的libcrypto.so.3库文件。例如找到的库文件位于/usr/lib64目录下,则建立软连接的命令如下:

ln -s /usr/lib64/libcrypto.so.3 /path/to/mysql/mysql_8.2.0/lib/private/libcrypto.so.3

步骤2-2:如果未找到libcrypto.so.3库文件,则在root下使用yum reinstall openssl命令,重新安装OpenSSL。查看安装成功的OpenSSL版本如果版本小于3.0.0,则手动在安装MySQL的用户下安装OpenSSL3.0.0,详细步骤见目录:其他-普通用户下手动安装OpenSSL 3.0.0。安装成功后,即可按照 步骤2-1 建立软连接到新安装的OpenSSL目录下的库文件即可。

2 error while loading shared libraries: *: cannot open shared object file: No such file or directory问题

错误描述:初始化MySQL时,报出如下错误

mysqld: error while loading shared libraries: libssl.so.3: cannot open shared object file: No such file or directory
# 或
mysqld: error while loading shared libraries: libcrypto.so.3: cannot open shared object file: No such file or directory

错误解决:建立软连接

# root用户下建立如下软连接
ln -s /corrent_path/libssl.so.3 /path/to/mysql/mysql_8.2.0/lib/private/libssl.so.3
# 或
ln -s /corrent_path/libcrypto.so.3 /path/to/mysql/mysql_8.2.0/lib/private/libcrypto.so.3

其中

  • /corrent_path/libcrypto.so.3是服务器实际的libcrypto.so.3文件所在路径,一般在/usr/lib64/usr/lib目录下。
  • /path/to/mysql/mysql_8.2.0/lib/private/libcrypto.so.3是MySQL解压后的安装目录中依赖的libcrypto.so.3文件所在路径,一般在解压后的bin目录同级的lib目录中。

启停MySQL服务

启动MySQL

# 通过mysqld_safe启动
mysqld_safe --defaults-file=/corrent_path/my.cnf --user=username &
# 通过mysqld启动
mysqld --defaults-file=/corrent_path/my.cnf --user=username &

结束MySQL

-- 方式1:通过如下命令停止服务
SHUTDOWN;
-- 方式2:通过mysqladmin停止服务
mysqladmin -u root -p shutdown -S /path/to/mysql/tmp/mysql.sock
-- 方式3:查询MySQL服务进程,kill进程
-- 查询进程的命令
ps xu
-- 通过进程PID杀死进程
kill PID

MySQL常见操作

创建可供远程连接的管理员用户

连接MySQL服务,执行如下步骤,创建可供远程连接的用户。

步骤1 创建用户

创建一个新的用户,并为其分配适当的权限。您可以使用 CREATE USER 语句来创建用户。例如:

CREATE USER 'admin'@'%' IDENTIFIED BY 'your_password';

这将创建一个名为 admin 的用户,并允许从任何主机('%')进行连接。请替换 'your_password' 为您想要设置的密码。

步骤2 授予用户管理员权限

为该用户授予适当的权限,以便其可以执行管理员操作。您可以使用 GRANT 语句来授予权限。例如,如果您想要将管理员权限(ALL PRIVILEGES)授予给该用户,您可以执行以下命令:

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

这将授予用户 admin 在所有数据库上执行任何操作的权限,并允许他将权限授予其他用户(使用 WITH GRANT OPTION)。请注意,授予权限时应该根据实际需求进行适当的限制,不要过度授予权限。

步骤3 刷新权限

最后,需要刷新 MySQL 的权限,以确保新的权限设置立即生效。您可以使用 FLUSH PRIVILEGES 语句来执行此操作:

FLUSH PRIVILEGES;

通过执行上述步骤,您将创建一个名为 admin 的用户,允许从任何主机进行远程连接,并具有管理员权限。刷新权限后,即可通过此用户进行连接,无需重启数据库。

MySQL常见问题

root用户密码丢失问题解决

步骤1 关闭MySQL服务,MySQL启动命令增加–skip-grant-tables参数,启动MySQL服务

--skip-grant-tables 参数是启动 MySQL 服务时的一个选项,它的作用是在启动 MySQL 时跳过权限验证表(grant tables)。启用此选项后,MySQL 服务器将在启动时忽略用户权限相关的表,这意味着任何人都可以通过任何用户名登录 MySQL 服务器,并具有完全的管理员权限,而不需要提供密码。

启动mysql命令示例如下:

# 通过mysqld_safe启动
mysqld_safe --defaults-file=/corrent_path/my.cnf --skip-grant-tables --user=username
# 通过mysqld启动
mysqld --defaults-file=/corrent_path/my.cnf --skip-grant-tables --user=username

步骤2 连接mysql,需要输入密码时直接回车,即可成功连接mysql服务

连接mysql的命令示例如下:

mysql --defaults-file=/corrent_path/my.cnf -u root -p

步骤3 修改root用户登录密码设置为空

-- 首先使用mysql数据库
use mysql;
-- 修改root用户登录密码为空
update user set authentication_string='' where user='root';
-- 退出当前连接
quit

上述 SQL 语句的作用是将 MySQL 数据库中 user 表中用户名为 root 的用户的 authentication_string 字段值设置为空字符串。在 MySQL 中,authentication_string 字段存储了用户的密码哈希值或者身份验证插件所需的凭据。

通过将 root 用户的 authentication_string 字段设置为空字符串,实际上是将该用户的密码清空,使其成为一个没有密码的用户。这样,如果以后再次登录 MySQL 服务器时,将不需要提供密码,即可直接登录到 MySQL 服务器。

步骤4 关闭mysql服务,去除--skip-grant-tables参数,启动mysql服务

步骤5 通过root用户连接mysql服务,需要输入密码时,直接回车

步骤6 修改root用户密码

执行如下sql修改root用户密码

alter user 'root'@'localhost' identified by '123456';

ALTER USER 语句用于修改现有用户的属性,而 identified by 子句则指定了要设置的新密码。在这种情况下,'root'@'localhost' 表示 MySQL 数据库中的一个用户,该用户的用户名为 'root',并且只能从本地主机('localhost')进行连接。通过执行这条 SQL 语句,管理员将 'root'@'localhost' 用户的密码修改为 123456

至此root用户密码设置成功,再次使用root用户连接时,输入此密码即可成功连接。

其他

普通用户下手动安装OpenSSL 3.0.0

普通用户下手动下载 OpenSSL 3.0.0 的源代码,并在普通用户的主目录中进行编译和安装。以下是一般的步骤:

1 下载 OpenSSL 3.0.0 源代码:

你可以从 OpenSSL 的官方网站或者 GitHub 上获取 OpenSSL 3.0.0 的源代码。假设你将其下载到了当前用户的主目录下。

cd ~
wget https://www.openssl.org/source/openssl-3.0.0.tar.gz

2 解压源代码:

解压下载的源代码文件。

tar -xzvf openssl-3.0.0.tar.gz

3 进入解压后的目录:

cd openssl-3.0.0

4 配置 OpenSSL:

运行 config 脚本以配置 OpenSSL。为了将 OpenSSL 安装到用户主目录下,你可以指定 --prefix 选项来设置安装路径。

./config --prefix=/home/your_username/openssl

请将 your_username 替换为你的实际用户名。

5 编译并安装:

make
make install

6 更新动态链接库缓存:

完成安装后,为了确保系统能够正确找到新安装的 OpenSSL 库,你需要更新动态链接库缓存。

ldconfig

7 配置环境变量:

如果你希望在使用 OpenSSL 时能够方便地找到新安装的版本,可以将其路径添加到 PATH 环境变量中。你可以编辑 ~/.bashrc~/.bash_profile 文件,在文件末尾添加以下行:

export PATH=/home/your_username/openssl/bin:$PATH
export LD_LIBRARY_PATH=/home/your_username/openssl/lib:$LD_LIBRARY_PATH

请将 your_username 替换为你的实际用户名。

配置完成后,source环境变量:

source ~/.bashrc

8 验证安装:

验证 OpenSSL 是否成功安装到了指定的目录中。

openssl version

注意事项:

  • 以上步骤中的路径和命令假设你是以普通用户身份执行的。如果你是以 root 或具有管理员权限的用户身份执行,请谨慎操作。
  • 在配置、编译和安装过程中可能会遇到依赖项缺失或其他问题。根据你的系统配置和环境可能需要进一步的调整和处理。
  • 在执行这些步骤之前,请确保你有足够的权限来在系统中进行安装和配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值