brew 安装和配置 mysql
使用 brew 安装
安装完成后会出现如下显示
/opt/homebrew/Cellar/mysql/8.0.30/bin/mysqld –initialize-insecure –user=xxx –basedir=/opt/homebrew/Cellar/mysql/8.0.30 –datadir=/opt/homebrew/var/mysql –tmpdir=/tmp
使用方法
启动数据库
关闭
客户端链接
1
| mysql -hlocalhost -P 3306 -uroot -p
|
参考
nix 安装和配置 mysql
临时使用
- 创建一个 mysql 目录
mkdir -p mysql
- 在该文件中添加内容如下的脚本
mysql.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| # https://jeancharles.quillet.org/posts/2022-01-30-Local-mariadb-server-with-nix-shell.html
let pkgs = import <nixpkgs> {};
in pkgs.mkShell {
buildInputs = [ pkgs.mariadb ];
shellHook = ''
MYSQL_BASEDIR=${pkgs.mariadb}
MYSQL_HOME=$PWD/mysql
MYSQL_DATADIR=$MYSQL_HOME/data
export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock
MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid
alias mysql='mysql -u root'
if [ ! -d "$MYSQL_HOME" ]; then
# Make sure to use normal authentication method otherwise we can only
# connect with unix account. But users do not actually exists in nix.
mysql_install_db --auth-root-authentication-method=normal \
--datadir=$MYSQL_DATADIR --basedir=$MYSQL_BASEDIR \
--pid-file=$MYSQL_PID_FILE
fi
# Starts the daemon
mysqld --datadir=$MYSQL_DATADIR --pid-file=$MYSQL_PID_FILE \
--socket=$MYSQL_UNIX_PORT 2> $MYSQL_HOME/mysql.log &
MYSQL_PID=$!
finish()
{
mysqladmin -u root --socket=$MYSQL_UNIX_PORT shutdown
kill $MYSQL_PID
wait $MYSQL_PID
}
trap finish EXIT
'';
}
|
- 在该目录执行
nix-shell ./mysql.nix
, 开启 mysqld - 执行
mariadb-secure-installation
修改密码 - 登录操作
mysql -uroot -p
来管理 mysql 数据库
作为常用 app 使用
在系统中安装 mysql
1
| environment.systemPackages = [ pkgs.mysql ];
|
1
2
3
4
5
6
7
8
9
10
11
| MYSQL_BASEDIR=${pkgs.mariadb}
MYSQL_HOME=$HOME/.cache/mysql
MYSQL_DATADIR=$MYSQL_HOME/data
export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock
MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid
if [[ ! -d "$MYSQL_HOME" ]]; then
mysql_install_db --auth-root-authentication-method=normal \
--datadir=$MYSQL_DATADIR --basedir=$MYSQL_BASEDIR \
--pid-file=$MYSQL_PID_FILE
fi
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| MYSQL_BASEDIR=${pkgs.mariadb}
MYSQL_HOME=$HOME/.cache/mysql
MYSQL_DATADIR=$MYSQL_HOME/data
export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock
MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid
# Starts the daemon
mysqld --datadir=$MYSQL_DATADIR --pid-file=$MYSQL_PID_FILE \
--socket=$MYSQL_UNIX_PORT 2> $MYSQL_HOME/mysql.log &
MYSQL_PID=$!
finish()
{
mysqladmin -u root --socket=$MYSQL_UNIX_PORT shutdown
kill $MYSQL_PID
wait $MYSQL_PID
}
trap finish EXIT
|