安装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
或具有管理员权限的用户身份执行,请谨慎操作。 - 在配置、编译和安装过程中可能会遇到依赖项缺失或其他问题。根据你的系统配置和环境可能需要进一步的调整和处理。
- 在执行这些步骤之前,请确保你有足够的权限来在系统中进行安装和配置。