目录
0.码仙励志
1.环境和下载
2.安装
再长的路,一步步也能走完,再短的路,不迈开双脚也无法到达。
Linux:centos7
MySQL:5.7
先下载,下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
也可以用百度网盘下载
链接:https://pan.baidu.com/s/1cRrla0MNs5zMRJeK-9RU7g
提取码:qzjm
链接失效请添加QQ194760901获取
放到/home目录下
解压
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
再移动并重命名一下
mv mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
查看一下
cd /usr/local/mysql
配置my.cnf
vi /etc/my.cnf
内容如下
[mysqld]
#配置区段
socket=/tmp/mysql.sock
#允许所有IP可访问mysql服务器
bind-address=0.0.0.0
#端口
port=3306
#MySQL启动用户
user=root
#指定安装MySQL的安装路径
basedir=/usr/local/mysql
#错误日志的文件路径,保存MySQL启动、运行或停止时的日志信息
log-error=/log/mysql/error/error.log
#是否开启常规日志,用于记录客户端连接和执行的SQL语句
general-log=1
#常规日志的文件路径
general-log_file=/log/mysql/general/general.log
#开启慢查询日志
slow_query_log=on
#设置超过2秒的查询为慢查询
long_query_time=2
#慢查询日志文件路径,用于记录超过long_query_time时间或没有使用索引的查询
slow-query-log-file=/log/mysql/slow/slow.log
#二进制日志的保存路径,主要用于复制环境和数据恢复。
log-bin=/log/mysql/bin/binfile
#二进制日志单个文件的大小限制。
max_binlog_size=500M
#自动清除超过指定天数的过期日志。
expire_logs_days=30
#指定MySQL的数据库文件路径,千万别和日志放到一起,防止rm -rf
datadir=/data/mysql
#开启二进制文件的时候,需要设置这个参数
server-id=1
#防止同一个数据库被启动多次
pid-file=/usr/local/mysql/mysql.pid
#服务器的默认字符集,默认为latin1
character_set_server=utf8mb4
#禁用符号链接以防止各种安全风险
symbolic-links=0
#服务器对TIMESTAMP列的默认值和NULL值的处理方式,默认为0。设为1时,TIMESTAMP列可以保存NULL值。
explicit_defaults_for_timestamp=1
创建需要用到的目录
mkdir -p /log/mysql/error
mkdir -p /log/mysql/general
mkdir -p /log/mysql/slow
mkdir -p /log/mysql/bin
mkdir -p /data/mysql
初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=root --initialize
如果出现下面情况
需要执行下面命令,然后重新初始化数据库
yum install libaio-devel.x86_64
查看密码,这个密码是随机生成的,一会儿登录的时候需要
cat /log/mysql/error/error.log
将mysql.server放置到/etc/init.d/mysql中,不然启动不了服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start
到这里说明mysql已经安装成功了!!
下面修改密码
首先登录mysql,前面的那个是随机生成的密码,/usr/local/mysql/bin目录下执行
./mysql -u root -p
修改密码为123456,然后重新登录。
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
这时候你如果使用远程连接……你会发现你无法连接。
这里主要执行下面三个命令(先登录数据库)
访问mysql库
use mysql;
使root能在任何host访问
update user set host = '%' where user = 'root';
刷新
FLUSH PRIVILEGES;
如果还不行查看防火墙是否关闭,没有关闭就关闭一下
查看防火墙状态
systemctl status firewalld.service
关闭防火墙
systemctl stop firewalld.service
用navicat连接
参考文献
https://blog.csdn.net/qq_37598011/article/details/93489404
https://blog.csdn.net/sakurallj/article/details/69396431
https://blog.csdn.net/naught00/article/details/60963484
https://blog.csdn.net/rockstar541/article/details/90242898