71 字
1 分钟
Ubuntu安装MySQL8.1
确定Ubuntu版本
# 查看版本lsb_release -a# 例如我的版本:root@huanfa:/app/mysql/data/mysql# lsb_release -aNo LSB modules are available.Distributor ID: UbuntuDescription: Ubuntu 22.04.5 LTSRelease: 22.04Codename: jammy在MySQL官网查看版本并下载
# 通过官网连接,按照下图下载安装包https://downloads.mysql.com/archives/community/# 在自己建的文件夹中下载文件# 下载对应版本的文件(DEB Bundle)sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-server_8.1.0-1ubuntu22.04_amd64.deb-bundle.tar解压文件
# 括号中的是指定路径,自选加不加(解压的文件不会自己创建文件夹,建议加一下,xxx表示对应文件夹)sudo tar -xvf mysql-server_8.1.0-1ubuntu22.04_amd64.deb-bundle.tar (-C xxx)安装MySQL
# 在安装过程中可能会遇到缺少libaio1、libmecab2包,通过以下方法执行sudo apt-get updatesudo apt-get install libaio1sudo apt-get install libmecab2
# libmecab2 在安装时会显示需要新建root密码# 依次安装包。由于包之间有依赖关系,一定要按照顺序安装依次安装包。# 由于包之间有依赖关系,一定要按照顺序安装
sudo dpkg -i mysql-common_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-community-client-plugins_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i libmysqlclient22_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i libmysqlclient-dev_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-community-client-core_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-community-client_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-client_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-community-server-core_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-community-server_8.1.0-1ubuntu22.04_amd64.debsudo dpkg -i mysql-server_8.1.0-1ubuntu22.04_amd64.deb确认是否安装成功并新建外部可访问的root账号
1)确认安装成功
# 安装完成后验证MySQL是否安装成功mysql -u root -p# 密码为自己新建的,如果没有新建就不需要填密码# 正常安装完成后应该和下面相差不大root@huanfa:/app/mysql/data/mysql# mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 11Server version: 8.1.0 MySQL Community Server - GPL
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> status--------------mysql Ver 8.1.0 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 11Current database:Current user: root@localhostSSL: Not in useCurrent pager: stdoutUsing outfile: ''Using delimiter: ;Server version: 8.1.0 MySQL Community Server - GPLProtocol version: 10Connection: Localhost via UNIX socketServer characterset: utf8mb4Db characterset: utf8mb4Client characterset: utf8mb4Conn. characterset: utf8mb4UNIX socket: /var/run/mysqld/mysqld.sockBinary data as: HexadecimalUptime: 19 min 0 sec
Threads: 3 Questions: 17 Slow queries: 0 Opens: 140 Flush tables: 3 Open tables: 59 Queries per second avg: 0.014--------------
mysql>2)新建外部访问的root账号
# 安装完成后查看用户信息select host,user from mysql.user;
# 创建用户,再给用户给权限create user root@'%' identified with mysql_native_password by 'root';grant all on *.* to root@'%' with grant option;flush privileges;exit;
# 'root'改为自己的密码
# 修改MySQL配置文件中的bind-addresssudo vim /etc/mysql/mysql.conf.d/mysqld.cnf# 在文件中修改或添加如下配置bind-address = 0.0.0.0# 重启mysqlsudo service mysql restart修改文件存储位置
# 停止MySQL服务sudo service mysql stop# 创建新的数据存储目录sudo mkdir -p /data/mysql
# 复制MySQL的数据到新的目录中sudo cp -ar /var/lib/mysql /data/mysql
# 修复新的存储目录的权限sudo chown -R mysql:mysql /data/mysql
# 修改MySQL的配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf# 编辑上述文件,在文件中找到datadir项,=后面的值即为MySQL的存储路径,修改为新的路径即可。即:datadir = /data/mysql
# 注意:只是修改MySQL的配置文件是不行的,因为Ubuntu有访问控制系统apparmor,所以还需要修改与该访问控制系统相关的文件sudo vim /etc/apparmor.d/usr.sbin.mysqld# 查找到以下内容/var/lib/mysql/ r,/var/lib/mysql/** rwk,# 并将其修改为:/data/mysql/ r,/data/mysql/** rwk,# 修改访问控制文件sudo vim /etc/apparmor.d/abstractions/mysql# 查到到以下内容/var/lib/mysql{,d}/mysql{,d}.sock rw# 并将其修改为:/data/mysql{,d}/mysql{,d}.sock rw
# 重启apparmor服务sudo service apparmor restart# 重启MySQL服务sudo service mysql start# 在MySQL中验证存储位置show variables like '%datadir%';
# 如下就是修改成功了mysql> show variables like '%datadir%';+---------------+------------------------+| Variable_name | Value |+---------------+------------------------+| datadir | /var/lib/mysql/ |+---------------+------------------------+1 row in set (0.01 sec)如果这篇文章对你有帮助,欢迎分享给更多人!
发现错误或想要改进这篇文章?
在 GitHub 上编辑此页