注意:安装之前请检查以前是否已经安装了MySQL数据库,再进行安装操作
检查命令:
rpm -qa|grep -i mysql
执行之后,如果没有打印出任何信息,即为未安装过MySQL数据库,就可以进行安装操作了
下载安装包(也可以使用命令在线下载..省略)
下载地址:https://dev.mysql.com/downloads/mysql/
注册个oracle账号下载即可
安装依赖环境
yum -y install perl perl-devel autoconf libaio
把下载好的安装包上传到Linux上
解压:
tar zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
移动到/usr/local/ 目录下 并重命名为 mysql
mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql
进入/usr/local/查看下:
添加mysql组和用户:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建数据目录并赋权
进入cd /usr/local/mysql/目录
创建data数据目录并赋予权限:
mkdir -p /data
chown mysql:mysql -R /data
初始化数据库
进入cd /usr/local/mysql/bin/ 目录
初始化(注意:5.7+版本初始化/ect/my.cnf有的会没有my.cnf文件,需要自己创建):
进入etc目录运行命令:touch my.cnf
然后编辑my.cnf文件,并添加以下内容:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
####基础设置####
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
#mysql安装根目录
basedir = /usr/local/mysql
#mysql数据文件所在位置
datadir = /usr/local/mysql/data
#临时目录 比如load data infile会用到
tmpdir = /tmp
#设置socke文件所在目录
socket = /tmp/mysql.sock
#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect='SET NAMES utf8mb4'
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#最大连接数
max_connections = 400
#最大错误连接数
max_connect_errors = 1000
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728
#禁用mysql的缓存查询结果集功能
#后期根据业务情况测试决定是否开启
#大部分情况下关闭下面两项
query_cache_size = 0
query_cache_type = 0
###其它设置###
[mysqldump]
quick
max_allowed_packet = 128M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 256k
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
#增加每个进程的可打开文件数量
open-files-limit = 28192
然后才继续运行初始化内容
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize
查看初始化数据库的密码文件:
启动MySQL服务并修改root密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动MySQL服务:
service mysql start
查看MySQL服务进程:
ps -ef|grep mysql
到这里MySQL5.7数据库就已经安装成功了!
修改密码
首先登录mysql,进入bin目录执行以下命令:
./mysql -u root -p
复制上面数据库初始化后的密码文件中的密码:
粘贴进去即可:
注意:粘贴的时候密码是看不见的,粘贴完成后直接回车即可
修改密码:
SET PASSWORD = PASSWORD('你要的密码');
设置密码永不过期并刷新权限:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
设置可远程连接访问数据库
use mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '远程连接密码' WITH GRANT OPTION;
刷新权限:
FLUSH PRIVILEGES;
退出:
quit;
开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
查看已经开放的端口
firewall-cmd --list-ports
测试远程连接数据库:
设置可在任何目录下使用命令进行登录MySQL
ln -s /usr/local/mysql/bin/mysql /usr/bin
mysql -uroot -p
MySQL注册成服务,开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
输入y确认覆盖即可
赋予权限:
chmod +x /etc/init.d/mysql
添加为服务:
chkconfig --add mysql
查看服务列表:
chkconfig --list
看到3、4、5状态为on 或者为 开 则表示成功。
如果是 关 或者 off 则执行一下:
chkconfig --level 345 mysql on
重启Linux:
reboot
重启后再次查看服务列表、登录MySQL:
完毕!