• 文章列表
  • >
  • 正在阅读
  • Linux(Ubuntu) 安装及配置 MySql 数据库

    本文主要记录在 Linux(Ubuntu) 下安装 MySql 数据库的重要配置点:远程访问 及 忽略大小写。特别是忽略大小写的配置是及其重要的,一旦 MySql 初始化并且有了数据库和表之后,修改起来就会很麻烦,所以在刚安装好的时候就要做好配置。

    1. 安装 mysql 数据库

    更新 apt 管理的资源包:

    sudo apt update
    

    更新 apt 资源包是为了安装操作系统可用的最新版本的 mysql 。

    更新完毕后,安装 mysql:

    sudo apt install mysql-server
    

    安装完成后,mysql 服务会自动启动。

    验证 mysql 正在运行,输入:

    sudo systemctl status mysql
    

    2. 配置 mysql 忽略大小写

    **\忽略大小写是十分必要的,并且应该在没有任何库和表之前**

    停止 mysql 服务:

    sudo systemctl stop mysql
    

    打开在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件:

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

    在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件的 [mysqld] 后添加:

    lower_case_table_names=1
    

    删除并重新创建 /var/lib/mysql 目录:

    sudo rm -rf /var/lib/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
    

    启动 mysql 服务:

    sudo systemctl start mysql
    

    重新初始化后,会给 root 用户生成临时密码。

    检索mysql root用户新生成的临时密码:

    sudo grep 'temporary password' /var/log/mysql/error.log
    

    输出参考(最后的'qj&wiF-yq4in'就是临时密码):

    2021-09-04T02:24:28.833136Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qj&wiF-yq4in
    

    用临时密码登录 mysql 并修改 root 用户的密码:

    sudo mysql -u root -p
    alter user 'root'@'localhost' identified with mysql_native_password by '密码';
    

    验证 lower_case_table_names 配置:

    show variables like 'lower_case%'
    

    退出mysql

    exit
    

    3. 配置 mysql 的远程访问

    3.1. 编辑配置文件

    打开在 /etc/mysql/mysql.conf.d/mysqld.cnf 文件:

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

    找到 bind-address 一行,默认该值为 127.0.0.1,仅监听本地连接。 将 bind-address 改为 0.0.0.0 允许所有 IP 地址访问,也可以是某个固定 IP,仅允许该固定 IP 连接。 如果没有找到 bind-address 的配置行的话自行新增即可。 编辑完成后保存并退出。

    3.2. 重启 mysql 服务(使新配置生效):

    sudo systemctl restart mysql
    

    3.3. 登录 mysql 添加远程管理用户

    登录

    mysql -uroot -p
    

    输入密码登录后创建一个新用户('%'表示允许远程登录):

    create user '用户名'@'%' identified with mysql_native_password by '用户密码';
    

    查询用户:

    select user,host from mysql.user;
    

    赋予该用户拥有所有数据库的访问权限:

    grant all privileges on *.* to '用户名'@'%' with grant option;
    

    刷新 mysql 系统权限,然后退出 mysql。

    FLUSH PRIVILEGES;
    EXIT;
    

    如果防火墙是启用的状态的话,记得要开放 mysql 的通信端口 3306 。

    这个时候就可以测试远程连接了。

    ©2024