文章目录
- 一、准备工作
- 1、用 **rpm -qa** 命令查看:
- 2、用 **rpm -e** 命令删除:
- 二、下载mysql并安装
- 1、下载
- 1.进入文件夹:
- 2.拉取压缩包:
- 2、解压
- 1、解压命令:
- 2、解压后重命名文件夹:
- 3、进入文件夹,完善目录结构
- 1、进入mysql目录,新建data文件夹。
- 1、进入目录
- 2、新建数据文件夹
- 4、创建用户和组并授权
- 1、创建用户和组命令:
- 2、授权
- 5、配置环境变量
- 6、安装依赖包
- 7、新建mysql的配置文件。
- 1、新建文件:
- 2、填充内容
- 3、填充内容后查看:
- 7、初始化mysql
- 1、进入**bin**目录:
- 2、执行命令初始化:
- 8、启动mysql服务
- 1、进入**support-files**目录:
- 2、启动mysql服务:
- 3、连接进入数据库:
- 三、配置开机自启动
- 1、配置自启动。
- 2、启动命令。
- 四、开放mysql远程连接
- 1、启动mysql服务并进入。
- 2、切换库,设置,刷新。
- 3、重启服务
- 4、开放防火墙端口
- 1、开放 3306 端口:
- 2、重启防火墙:
- 3、查询端口号80 是否开启:
- 五、修改密码
- 1、启动mysql服务并进入。
- 2、切换库,设置,刷新。
- 3、编辑 `/etc/my.cnf` 注释掉 `skip-grant-tables`
- 4、重启mysql服务。
- 5、登录mysql测试。
- 6、远程连接异常处理。
- 坑了不少踩,整理一个文档。
- 亲测有效,完全按照步骤操作。
一、准备工作
查看系统中是否有mysql相关的东西。
1、用 rpm -qa 命令查看:
rpm -qa | grep mysql
rpm -qa | grep mariadb
如果存在则进行步骤2删除。
2、用 rpm -e 命令删除:
删除命令:
rpm -e --nodeps $(rpm -qa | grep mariadb)
删除后再次查看:
rpm -qa | grep mariadb
我这里系统中只有mariadb相关,只做了这个删除。
本次把mysql安装在 **/home** 文件夹
二、下载mysql并安装
1、下载
1.进入文件夹:
命令:
cd /home/
2.拉取压缩包:
命令:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
注意:压缩包也可以通过百度网盘下载,自己上传到 /home文件夹下:
下载:
下载完成查看:
2、解压
1、解压命令:
tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2、解压后重命名文件夹:
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
3、进入文件夹,完善目录结构
1、进入mysql目录,新建data文件夹。
1、进入目录
cd mysql
2、新建数据文件夹
mkdir data
4、创建用户和组并授权
1、创建用户和组命令:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
id mysql
2、授权
我们mysql安装在 /home下,data数据也在该目录下,只需授权**/home/mysql**目录即可。
命令:
chown -R mysql:mysql /home/mysql
5、配置环境变量
编辑配置文件命令:
cat <<EOF>> /root/.bash_profile
然后输入:
export PATH=\$PATH:/home/mysql/bin
回车。
输入:
EOF
回车。
刷新配置文件:
source /root/.bash_profile
查看配置文件:
cat /root/.bash_profile
6、安装依赖包
需要安装一下依赖包,不然可能会导致mysql安装失败。
yum -y install autoconf
7、新建mysql的配置文件。
1、新建文件:
touch /etc/my.cnf
2、填充内容
/etc/my.cnf 文件的内容:
[mysqld]
user=mysql
port=3306
basedir=/home/mysql
datadir=/home/mysql/data
socket=/tmp/mysql.sock
log-error=/home/mysql/data/mysql.log
pid-file=/home/mysql/data/mysql.pid
slow_query_log=on
long_query_time=8
#如果运行的sQL语句没有使用索引,则mysql数据库同样会将这条sQL语句记录到慢查询日志文件中。
log-queries-not-using-indexes
default_storage_engine=InnoDB
innodb_file_per_table = on
#忽略主机名解析,提高访问速度(注意配置文件中使用主机名将不能解析)
skip_name_resolve = on
character-set-server=utf8mb4
query_cache_type=1
query_cache_limit = 2M
query_cache_size = 128M
max_connections = 1000
skip_grant_tables 登录时跳过安全检查
##客户端
[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8mb4
[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8mb4
- user:刚刚新建的mysql管理用户。
- basedir:指定 MySQL 安装的绝对路径;
- datadir:指定 MySQL 数据存放的绝对路径;
- port:服务端口号,默认为 3306
- server-id:MySQL 服务的唯一编号,每个 MySQL 服务的 id 需唯一。
- socket:socket 文件所在目录
- skip_grant_tables 登录时跳过安全检查
3、填充内容后查看:
cat /etc/my.cnf
7、初始化mysql
1、进入bin目录:
cd /home/mysql/bin
2、执行命令初始化:
mysql_install_db --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/
mysqld -initialize --user=mysql --basedir=/home/mysql/ --datadir=/home/mysql/data/
8、启动mysql服务
1、进入support-files目录:
cd /home/mysql/support-files/
2、启动mysql服务:
./mysql.server start
如果出现异常:
[root@localhost support-files]# ./mysql.server start
./mysql.server:行239: my_print_defaults: 未找到命令
./mysql.server: 第 259 行:cd: /usr/local/mysql: 没有那个文件或目录
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
处理方式修改 mysql.server
文件:
vi mysql.server
把文件中的默认路径 /usr/local
修改为我们的安装路径 /home
修改前:
修改后:
再次重启数据库:
3、连接进入数据库:
mysql -u -root
三、配置开机自启动
1、配置自启动。
执行 命令(在任何目录下都可执行该命令)把我们的mysql启动脚本复制一份:
cp /home/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
查看mysql是否加入开机启动列表:
chkconfig --list | grep mysql
配置完之后就可以用 service mysql start
启动 MySQL 服务!
2、启动命令。
启动服务:
service mysql start
重启服务:
service mysql restart
关闭服务:
service mysql stop
四、开放mysql远程连接
1、启动mysql服务并进入。
mysql -u root -p
回车后输入密码,回车进入数据库。
我们暂时使用跳过密码模式,无需数据密码回车就能进入数据库。
下面会把该模式关闭。
2、切换库,设置,刷新。
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
3、重启服务
service mysql restart
4、开放防火墙端口
1、开放 3306 端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
2、重启防火墙:
firewall-cmd --reload
3、查询端口号80 是否开启:
firewall-cmd --query-port=3306/tcp
五、修改密码
1、启动mysql服务并进入。
确定一下 /etc/my.cnf
文件有 skip-grant-tables
且没有被注释掉。
如果修改了该文件,则需要重启mysql服务。
我们这里无需重启直接进入mysql:
mysql -u root
2、切换库,设置,刷新。
use mysql;
update mysql.user set authentication_string=password('123456') where user='root';
flush privileges;
3、编辑 /etc/my.cnf
注释掉 skip-grant-tables
4、重启mysql服务。
service mysql restart
5、登录mysql测试。
6、远程连接异常处理。
如果远程连接报错:
处理方式:
进入mysql,修改密码,持久化设置。
mysql -u root -p
输入密码,之前设置的123456
回车进入数据库。
在数据库操作设置密码,设置持久化,刷新。
set password=password('123456');
alter user 'root'@'%' password expire never;
flush privileges;
坑了不少踩,整理一个文档。
亲测有效,完全按照步骤操作。