Ubuntu上MySQL8备忘

玖亖伍
2022-05-20 / 0 评论 / 72 阅读 / 正在检测是否收录...

安装mysql

# 服务器
sudo apt install mysql-server -y
# 客户端
sudo apt install mysql-client -y

设置密码并开启远程连接

修改mysql配置

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

主要配置内容

[mysqld]
# mysql 监听主机
bind-address = 0.0.0.0
# mysql X插件 监听主机(如果启用了的话)
mysqlx-bind-address = 0.0.0.0

修改mysql内部设置

超管方式运行mysql

# Ubuntu上全新安装的mysql8没有默认启用密码插件
sudo mysql

执行如下sql操作

-- 修改默认root@localhost使用密码插件并设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password';
-- 添加root允许远程主机访问(如果有必要,务必确保安全)
CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your password';
-- 授予远程访问全部权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
-- 刷新权限
FLUSH PRIVILEGES;
exit

安装mysql后需要修改忽略表名大小写

Windows上,MySQL默认是忽略表名大小写的;
Linux上,MySQL默认是区分表名大小写的,且MySQL初始化之后是不允许修改忽略表名大小写配置的,而MySQL安装过程会自动初始化。
如下操作参考: How to install MySQL 8.0 with lower_case_table_names=1 on Ubuntu Server 20.04 LTS successfully?

如果需要在MySQL安装后修改为忽略表名大小写,则需要删除MySQL数据,重新初始化,所以,如下操作前请备份数据;

修改mysql配置

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

主要配置内容

[mysqld]
lower_case_table_names = 1

清理数据(操作前务必备份数据)

# 停止服务
sudo service mysql stop
# 删除mysql数据文件夹及内部数据
sudo rm -rf /var/lib/mysql
# 重新创建mysql数据文件夹并赋予合适的权限
sudo mkdir /var/lib/mysql    
sudo chown mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql
# 重新初始化mysql
sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console
# 启动服务
sudo service mysql start
# 查看mysql临时密码
sudo grep 'temporary password' /var/log/mysql/error.log
# 使用(临时密码)登录mysql
sudo mysql -u root -p
# 参考前面允许远程配置部分,修改密码

可参考的mysql语句

-- 查看用户、认证方式、主机等信息
SELECT user,authentication_string,plugin,host FROM mysql.user;
-- 是否启用了ssl
SHOW VARIABLES LIKE 'have_ssl';
-- 是否忽略大小写
SHOW VARIABLES LIKE 'lower_case_%';
0

评论 (0)

取消