Ubuntu服务器安装MySQL并且指定数据库保存路径

安装MySQL步骤

更新到最新版本

sudo apt update

安装mysql-server

sudo apt-get install mysql-server

MySQL相关命令

启动MySQL

sudo systemctl start mysql

检查MySQL状态

sudo systemctl status mysql

停止MySQL服务

sudo systemctl stop mysql

重启MySQL

sudo service mysql restart

设置MySQL开机自启动

sudo systemctl enable mysql

新建数据库保存目录

sudo mkdir /mnt/disk2/mysql

操作MySQL相关命令

登陆MySQL

sudo mysql -u root #无密码登录

或者

sudo mysql -u root -p #有密码登录

检查数据库路径

SHOW VARIABLES LIKE 'datadir';

为root用户设置密码

如果是全新安装的 MySQL,可能不需要密码即可使用 sudo 登录

sudo mysql

如果已经为 root 用户设置了密码,使用以下命令:

mysql -u root -p

切换到 MySQL 数据库:

USE mysql;

在 MySQL 5.7 及更高版本

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

较低版本的 MySQL

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');

刷新权限表

FLUSH PRIVILEGES;

设置密码之后如果root用户依然可以通过mysql -u root命令无密码登陆,我们可以检查是否由 auth_socket 插件导致的

mysql -u root
USE mysql;
SELECT user, host, plugin FROM user WHERE user = 'root';

输出中,如果 plugin 列显示的是 auth_socket,说明 root 用户通过 auth_socket 插件进行身份验证,不需要密码。
这时候为了安全,我们需要将身份验证插件改为 mysql_native_password 或 caching_sha2_password。执行以下命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '你的密码';

或者

ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '你的密码';

重新刷新权限

FLUSH PRIVILEGES;

退出登陆数据库

EXIT;

 

指定数据库保存路径的步骤

新建目标目录

在目标位置新建目录

sudo mkdir /mnt/disk2/mysql

为新目录赋予权限

sudo chmod 755 /mnt/disk2/mysql

设置目录的拥有者

sudo chown -R mysql:mysql /mnt/disk2/mysql

移动数据库文件到新目录

停止MySQL服务

在移动数据库文件之前,需要先停掉MySQL的服务,避免数据库文件发生损坏

sudo systemctl stop mysql

复制文件到新目录

sudo rsync -av /var/lib/mysql/ /mnt/disk2/mysql/

删除原目录

sudo rm -rf /var/lib/mysql

初始化数据库

sudo mysqld --initialize --user=mysql --datadir=/mnt/disk2/mysql

修改配置文件

修改mysqld.cnf配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

Ubuntu服务器安装MySQL并且指定数据库保存路径将 # datadir取消注释,并且将等号后面的路径修改为你实际的路径

datadir = /mnt/disk2/mysql

修改apparmor文件

sudo vim /etc/apparmor.d/usr.sbin.mysqld

Ubuntu服务器安装MySQL并且指定数据库保存路径

将下面的代码

# Allow data dir access
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

修改为

# Allow data dir access
/mnt/disk2/mysql/ r,
/mnt/disk2/mysql/** rwk,

安装apparmor

sudo apt install apparmor

重新加载 AppArmor 配置

sudo apparmor_parser -r /etc/apparmor.d/usr.sbin.mysqld

重启apparmor服务

sudo service apparmor restart

后续操作

重新启动MySQL服务

sudo service mysql restart

重新登录MySQL,登录之后可以通过下面的命令查看自定义的数据库路径是否正确

SHOW VARIABLES LIKE 'datadir';
+---------------+-----------------------+
| Variable_name | Value |
+---------------+-----------------------+
| datadir | /mnt/disk2/mysql/ |
+---------------+-----------------------+
1 row in set (0.01 sec)

新建非root用户

CREATE USER 'newUser'@'localhost' IDENTIFIED BY 'newPassword';
GRANT ALL PRIVILEGES ON *.* TO 'newUser'@'localhost';
FLUSH PRIVILEGES;

其中:newUser是你新用户的名字,newPassword是你新用户的密码;日常使用可以用该用户进行操作,增强安全性;

完全卸载MySQL的步骤:

如果你想卸载MySQL服务,或者想重装MySQL服务,那么干净得卸载原来的MySQL是必要的,你可以根据下面的命令来执行卸载的动作!

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /etc/mysql
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get remove --purge mysql-\*

原创文章,作者:朋远方,如若转载,请注明出处:https://caovan.com/ubuntufuwuqianzhuangmysqlbingqiezhidingshujukubaocunlujing/.html

Like (0)
Donate 微信扫一扫 微信扫一扫
朋远方的头像朋远方
Previous 2024年10月2日 下午3:35
Next 2024年10月10日 上午9:02

相关推荐

发表回复

Please Login to Comment