openwrt平台mysql数据库的安装使用

安装

mysql依赖以下包:

  • mysql-server
  • libmysqlclient
  • uclibcxx
  • libncursesw
  • libreadline
1
2
opkg update
opkg install libreadline libncursesw uclibcxx libmysqlclient mysql-server

配置

  • 配置文件

    • 编辑配置文件/etc/my.conf, 修改 datadir 和 tmpdir 配置项为U盘上手动建立的两个目录。(我的MySQL安装位置为/mnt/sda1/cmd/mysql/usr,所以如下)

      datadir = /mnt/sda1/cmd/mysql/data/mysql/
      tmpdir = /mnt/sda1/cmd/mysql/data/tmp/
      basedir = /mnt/sda1/cmd/mysql/usr

  • 初始化MySQL

1
mysql_install_db --user=root --defaults-file=/etc/my.cnf --basedir=/mnt/sda1/cmd/mysql/usr --datadir=/mnt/sda1/cmd/mysql/data/mysql/ --force
  • 启动MYSQL

    • /mnt/sda1/cmd/mysql/usr/bin/mysqld &
    • 或者 /mnt/sda1/cmd/mysql/etc/init.d/mysqld start
  • 更改root密码

1
mysqladmin -u root password 'new-password'
  • 启动和登录
    • mysql -u root -p

其他配置

  • 外网访问
    • 首先需要更改一下绑定的ip,修改my.conf文件的bind-address为 0.0.0.0 或者直接#注释
    • 授权用户,然后重启MySQL
1
2
3
4
5
6
7
8
9
10
11
//方法一:授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'my-password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

////方法二:改表
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select user,host from user;
mysql> flush privileges;
mysql> exit;
  • 创建其它MySQL数据库用户
  • 例:创建一个名为 test 的MySQL用户(密码为Test@123.com)和一个名为 temp 的数据库。
1
2
3
4
5
6
7
8
9
10
11
12
13
/mnt/sda1/cmd/mysql/usr/bin/mysql -uroot -p(MySQL的root用户密码)

// 登录成功后,创建 temp 数据库,并设置字符集和编码
mysql> CREATE DATABASE `temp` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

// 创建 test 用户,并让它拥有 temp 数据库所有的权限
mysql> grant all privileges on temp.* to test@localhost identified by 'Test@123.com';

// 刷新MySQL的系统权限相关表-
mysql> flush privileges;

// 创建完毕,root用户退出
mysql> exit;

错误

暂无