Linux下搭建mysql数据库
参考网址:https://www.cnblogs.com/dengshihuang/p/8029092.html
- 系统约定
系统版本:Centos7.3 Mysql版本:5.7
安装文件下载目录:/data/software
Mysql安装目录:/opt/app/mysql
数据库保存位置:/opt/app/mysql/data/mysql
日志保存位置:/opt/app/mysql/data/mysql/log/mysql
- 下载mysql
方式一:
在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载(可根据需要安装的mysql版本进行下载):
--建议:在windows上使用迅雷下载,速度很快(我的是1M/s),然后用工具(Xftp)上传到 /data/software目录下;
方式二:
执行如下命名:
#mkdir -p /data/software
#cd /data/software
--下载安装包
#wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
- 解压安装包到安装位置
#cd /data/software
--解压压缩包
#tar -xzvf /home/umpay/data/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
--移动并修改文件名
#mv /home/umpay/data/mysql-5.7.33-linux-glibc2.12-x86_64 /opt/app/mysql
- 新建mysql用户、组及目录
#---新建一个msyql组
# useradd -d /opt/app/mysql -s /sbin/nologin mysql ---新建msyql用户禁止登录shell
chown -R mysql:mysql /opt/app/mysql
- 创建数据库数据存储目录
--/opt/app/mysql/data/mysql 数据仓库目录
# mkdir -p /opt/app/mysql/data/mysql
chown -R mysql:mysql /opt/app/mysql/data/mysql
- 修改系统配置文件
1)自5.7.18之后就不在提供my-default.cnf文件,为了使用更丰富的参数设置,拷贝以下内容,并粘贴内容即可,注意需要创建以及mysql用户权限,使用chown赋权限,如下命令:
#创建sock目录和文件并授权
mkdir -p /opt/app/mysql/lib/mysql
touch /opt/app/mysql/lib/mysqlmysql.sock
chown -R mysql:mysql /opt/app/mysql/lib/mysql
#备份my.cnf文件
mv /etc/my.cnf /etc/my.cnfbak
vim /etc/my.cnf
[mysqld]
server_id=76
relay_log=mysql_relaylog
relay_log_index=mysql_relaylog.index
log-slave-updates=true
log_bin=binlog
log_bin_index=binlog.index
wait_timeout=604800
interactive_timeout=604800
long_query_time=1
slow_query_log=ON
slow_launch_time=2
max_connections=2048
back_log=128
key_buffer_size=128M
query_cache_size=128M
query_cache_type=1
query_cache_limit=50M
max_connect_errors=100
sort_buffer_size=3M
max_allowed_packet=32M
join_buffer_size=2M
thread_cache_size=200
innodb_buffer_pool_size=51200M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1280M
innodb_log_file_size=128M
innodb_log_files_in_group=3
binlog_cache_size=20M
max_binlog_cache_size=51200M
max_binlog_size=512M
expire_logs_days=7
read_buffer_size=2M
read_rnd_buffer_size=2M
bulk_insert_buffer_size=8192M
character_set_server=utf8
log_bin_trust_function_creators=TRUE
basedir = /opt/app/mysql
datadir = /opt/app/mysql/data/mysql
port = 3306
socket = /opt/app/mysql/lib/mysql/mysql.sock
sql_mode='NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES'
#跳过mysql权限验证(解决登录报1045问题,在解决后需要再注释掉重启mysql)
#skip-grant-tables
#自动清理 30 天前的log文件,可根据需要修改
expire_logs_days=30
#查询缓存
explicit_defaults_for_timestamp=true
[mysqld_safe]
log-error = /opt/app/mysql/data/mysql/log/mysqld.log
pid-file = /opt/app/mysql/data/mysql/run/mysqld.pid
[client]
socket = /opt/app/mysql/lib/mysql/mysql.sock
2)
cp /opt/app/mysql/support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql
修改以下内容:
- 执行安装
再次授权权限以保证无权限问题
chown mysql:mysql /opt/app/mysql/data/mysql/ -R
chown mysql:mysql /opt/app/mysql/ -R
进入bin目录下执行以下命令
cd /opt/app/mysql/
#初始化mysql
# bin/mysqld --initialize --user=mysql --basedir=/opt/app/mysql --datadir=/opt/app/mysql/data/mysql
#bin/mysql_ssl_rsa_setup --datadir=/opt/app/mysql/data/mysql
此处需要注意记录生成的临时密码,如上文结尾处的:#?Fch0-_dV*Z
##初始化如果报错可以将sql-mode配置更改进行尝试初始化
1、sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
2、删除/opt/app/mysql/data/mysql/ 下所有文件
- 以下文件需要初始化mysql之后创建
#创建日志目录和文件并授权
mkdir /opt/app/mysql/data/mysql/log/
touch /opt/app/mysql/data/mysql/log/mysqld.log
#创建pid目录和文件并授权
mkdir /opt/app/mysql/data/mysql/run/
touch /opt/app/mysql/data/mysql/run/mysqld.pid
#授权(一定要执行)
chown mysql:mysql /opt/app/mysql/data/mysql/ -R
- 启动
启动前再次执行!!!!
chown mysql:mysql /opt/app/mysql/data/mysql/ -R
chown mysql:mysql /opt/app/mysql -R
/etc/init.d/mysql start
#提示以下则成功
[root@node1-jin mysql]# /etc/init.d/mysql start
Starting MySQL... SUCCESS!
#查看mysql进程
ps -ef |grep mysql
#如果提示以下需检查数据目录/opt/app/mysql/data/mysql的权限,
Starting MySQL.......... ERROR! The server quit without updating PID file (/opt/app/mysql/data/mysql/node1-jin.pid).
#执行此命令解决
chown mysql:mysql /opt/app/mysql/data/mysql/ -R
- 登录mysql
#mysql -hlocalhost -uroot -p
--如果出现:-bash: mysql: command not found
--就执行: # ln -s /opt/app/mysql/bin/mysql /usr/bin --没有出现就不用执行
--输入第七步生成的root临时密码
--初次修改密码
mysql> flush privileges;
Query OK, 0 rows affected (0.18 sec)
mysql>set password for root@localhost=password('umpay2010');
mysql> flush privileges; #立即生效
--设置root账户的host地址(修改了才可以远程连接,不安全不建议开放)
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
update user set user.Host=’%’ where user.User=’root’;
mysql>flush privileges;
--查看表
mysql> use mysql;
mysql> select host,user from user;
--这里就可以使用远程连接测试了;
- 添加开机自启
vim /etc/rc.d/rc.local
/etc/init.d/mysql start
chmod +x /etc/rc.d/rc.local
标签:opt,log,--,app,Linux,数据库,mysql,data,mysql5.7 From: https://www.cnblogs.com/xiaobaijin/p/18503748