一、安装前的检查
1.1 检查 linux 系统版本
命令:cat /etc/system-release
1.2 检查是否安装了 mysql
命令:rpm -qa | grep mysql
若存在 mysql 安装文件,则会显示 mysql安装的版本信息
如:mysql-connector-odbc-5.2.5-6.el7.x86_64
卸载已安装的MySQL,卸载mysql命令,如下:
rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64
将/var/lib/mysql文件夹下的所有文件都删除干净。可用find命令查找:find / -name mysql。
细节注意:
检查一下系统是否存在 mariadb 数据库,如果有,一定要卸载掉,否则可能与 mysql 产生冲突。
检查是否安装了 mariadb: rpm -qa | grep mariadb
如果有就卸载干净:
systemctl stop mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
二、从 mysql 官网下载并上传 mysql安装包
注:我这里使用的是rpm文件,直接下载之后上传至虚拟机即可。如果是.tar文件的话可以使用命令:tar -xvf file.tar
来解压
三、安装 mysql
3.1 将包含四个rpm文件的文件夹上传至/usr/lcoal目录下
3.2 添加系统用户
添加 mysql 组和 mysql 用户:
添加 mysql 组:groupadd mysql
添加 mysql 用户:useradd -r -g mysql mysql
3.3 检查是否安装了 libaio
命令:rpm -qa | grep libaio
如果未安装或版本太低可以直接输入:yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel;
用来直接安装或升级依赖包。
3.4 安装 mysql
因为我使用的是rpm文件,所以可以直接输入指令安装:
rpm -ivh mysql-community-common-5.7.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.15-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.15-1.el7.x86_64.rpm
注意:如果不按顺序执行命令,可能会在安装中提示缺少依赖,导致无法成功安装。需要安装nettools
四、初始化操作
4.1:初始化mysql
命令:mysqld --initialize
注:–initialize 选项默认以“安全”模式来初始化,会为 root 用户生成一个root 账户密码并将该密码标记为过期,密码在log文件里,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令 则不使用安全模式,则不会为 root 用户生成一个密码。
可以使用以下命令查看生成的root账户密码:vi /var/log/mysqld.log
有时候可能会权限不足,需要赋予权限:
5.7之前版本:
chmod -R 777 /usr/local/mysql/data/
5.7之后版本:
chmod -R 777 /var/lib/mysql
4.2:启动mysql
命令:service mysqld start
登录:账户名:root,密码:s5LWd2u;rQOp(替换成你的密码)。命令:mysql -u root -p
4.3修改mysql连接密码
mysql5.7及之后的版本用户表结构有变化,需执行以下命令:
update user set authentication_string = password("123") where user = "root";
flush privileges; //刷新权限(必须步骤)
注:如果执行语句时报错:
You must reset your password using ALTER USER statement before executing this statement.
则需要重置密码,命令为:
alter user user() identified by "123456";
至此,mysql5.7安装完毕,但是此时只能在本地连接mysql,如果想要使用数据库管理软件远程连接mysql,需要进行以下设置
将root用户设置为允许远程连接的用户(也可以设置其他的用户,原理一样)
update user set user.Host='%' where user.User='root';
flush privileges;
Linux开通mysql服务的防火墙端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启3306端口
firewall-cmd --reload #重启防火墙 (开放完新的端口后,需要重新启动防火墙)
如果出现
这种情况时,可以:
systemctl start firewalld
来开启防火墙。
在windows界面使用工具连接进入linux中的mysql
之后进行一点配置:
主要是最大连接数、编码格式、大小写转换、数据接收大小
show variables like "%max_connection%";查看最大连接数
show variables like "%character%";查看编码格式
show variables like "%case%";查看大小写转换
show variables like "%max_allowed_packet%";查看数据接收大小
配置都可以在etc下的my.cnf文件修改;配置如下:
character-set-server=utf8
init_connect='SET NAMEs utf8'
max_connections=200
max_allowed_packet=400M
[client]
default-character-set=utf8
在红框中的配置中:
配置中有character的皆为修改编码格式的配置;
init_connect也是编码格式配置;
max_connection是最大链接数;
max_allowed_packet是接收数据大小。
修改完成后重启mysql:systemctl restart mysqld