写在前面
mysql在开发过程中使用率比较高的数据库,linux下安装也挺简单,主要是一些配置容易忽略,文件权限比较复杂,下面例子使用超级用户(root)安装mysql5.6。默认mysql安装的权限是mysql用户组的mysql用户,不需要手动去创建,非大神不建议去修改,稍微权限不对,mysql就启动不了。
安装过程
- 更新ubuntu数据源
$ apt-get update
- 安装mysql server
$ apt-get install mysql-server-5.6
- 服务开启与停止
$ service mysql start # 开启mysql
$ service mysql stop # 停止mysql
$ service mysql restart # 重启mysql
修改配置文件
$ vim /etc/mysql/my.cnf
- 倘若不限定本机访问,则注释下面代码
bind-address = 127.0.0.1
- [mysqld]下面添加设置,若key存在则修改
[mysqld]
default-time_zone = '+8:00' #北京时间
character-set-server = utf8mb4 # 字符集 utf8mb4支持表情 普通选择utf8
lower_case_table_names=1 # 忽略表名大小写 选择性
slow_query_log = on # 开启慢查询
slow-query-log-file = /var/log/mysql/mysql-slow.log # 5.6后使用slow-query-log-file
long_query_time = 2 # 大于2s记录
log_bin = /var/log/mysql/mysql-bin.log # 开启bin log
max_connections = 1000 # 设置最大连接数
- 修改完配置重启mysql
若必要授权非本机用户登陆数据库
# 控制台登录数据库执行以下sql,需替换相应参数
GRANT ALL PRIVILEGES ON *.* TO '登录用户名'@'%代表所有ip' IDENTIFIED BY '登录用户密码' WITH GRANT OPTION;
数据迁移
倘若数据目录从/var/lib/mysql
迁移到/mysql/data
下面
- 停止mysql服务,创建目录
$ mkdir -p /mysql/data
$ chown mysql:mysql /mysql/data/ # 修改用户组
- 拷贝数据,注意一并拷贝文件权限,使用-a参数
$ cp -a /var/lib/mysql/* /mysql/data
- 修改配置文件
/etc/mysql/my.cnf
datadir = /mysql/data
- 修改
/etc/apparmor.d/usr.sbin.mysqld
权限文件,在/var/lib/mysql/
行下面添加,注意末尾逗号
/mysql/data/ r,
/mysql/data/** rwk,
- 重启mysql服务