Centos7下载安装mysql

该文详细介绍了如何在CentOS7系统上下载、安装MySQL5.7,包括设置环境变量、初始化数据库、配置my.cnf文件、启动服务、修改root密码、开放远程访问以及创建新用户的过程。
摘要由CSDN通过智能技术生成

参考文档:https://xie.infoq.cn/article/5da9bfdfbdaabf7b0b982ab6e
https://blog.csdn.net/Lance_welcome/article/details/107314575

一、直接安装mysql5.7

一、下载mysql 5.7+

# 下载mysql5.7.42版本
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
# 解压到/usr/local/soft/mysql目录下
tar -zxvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz
# 将解压所得文件夹移动到/usr/local目录下,并重命名文件夹为mysql
sudo mv mysql-5.7.42-linux-glibc2.12-x86_64 /usr/local/mysql
# 修改mysql文件夹的所有者和权限
sudo chown -R mysql:mysql /user/local/mysql/
# 如果出现 chown: invalid user: ‘mysql:mysql’ 错误,说明mysql用户不存在,执行以下命令,操作完再执行更改权限命令
groupadd mysql
useradd -r -g mysql mysql
# 设置文件夹权限
sudo chown -R 755 /usr/local/mysql

二、配置mysql5.7

#1、把 mysql/bin 目录下的所有命令创建一个“快捷方式”,#把这个写到配置文件里,路径不同,记得要修改路径
#方式一:
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# 方式二:也可以使用编辑/etc/profile的方式,
vi /etc/profile
# 结尾增加配置
export PATH=$PATH:/usr/local/mysql/bin


# 生效配置文件
source /etc/profile
# 生效之后,我们可以打出 mysql,按 tab 补全键两下,就可以看到所有的 mysql/bin 下的都能出来,这样设置是相当于 windows 的快捷键,以便我们更好的利用
mysql                       mysqld                      mysqlimport                 mysql_ssl_rsa_setup
mysqladmin                  mysqld-debug                mysql_install_db            mysqltest_embedded
mysqlbinlog                 mysqld_multi                mysql_plugin                mysql_tzinfo_to_sql
mysqlcheck                  mysqld_safe                 mysqlpump                   mysql_upgrade
mysql_client_test_embedded  mysqldump                   mysql_secure_installation   mysqlxtest
mysql_config                mysqldumpslow               mysqlshow
mysql_config_editor         mysql_embedded              mysqlslap

#2、生成mysql的临时密码,
# 切换到mysql目录下
cd /usr/local/mysql/
#执行命令。生成临时数据库密码,需要自行记住root账号的密码,方便登录(还是注意路径看看是不是和你的一样),若data文件已经存在,删除掉再执行即可
mysqld --user=mysql --initialize --datadir=/usr/local/mysql/data
	# 2.1 若执行命令报错:“error while loading shared libraries :libaio.so.1:cannot open shared object file:No such file or directory”,说明缺失包,安装包即可
	yum install libaio*
	#安装完成再次执行就好了
	mysqld --user=mysql --initialize --datadir=/usr/local/mysql/data

# 3、复制启动文件到/etc/init.d/目录,只需改动自己的路径即可
cp -ar /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

# 4、添加my.cnf配置文件,
cat /etc/my.cnf
# 若报cat: my.cnf: No such file or directory,则新增建my.cnf文件即可
cd /etc/
touch my.cnf
# 编辑my.cnf
vi my.cnf
# 内容(增加内容后保存退出即可):
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

# 内容结束。。

# 5、给my.cnf配置执行权限
chmod -R 775 /etc/my.cnf

三、启动mysql服务&&设置开机自启

1、启动前线看有没有启动过

ps -ef|grep -v grep |grep mysql
ps -ef|grep -v grep |grep mysqld

2、没有进程,开始启动

#启动mysql服务命令:
/etc/init.d/mysqld start

#启动成功后打印的内容:
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
 SUCCESS!

启动失败常见情况:

1、提示mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
解决方法:
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql  /var/log/mariadb/

提示:

[root@centos7 mysql]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/usr/local/mysql/data/error.log'.
2020-12-23T12:45:21.057101Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
The server quit without updating PID file (/usr/local/mysql[失败]centos7.pid).

解决方法:

mkdir   /var/lib/mysql
chmod 777  /var/lib/mysql
最后重启:
/etc/init.d/mysqld restart

3、设置开机自启

#添加服务
chkconfig --add mysqld
#显示服务列表
chkconfig --list

自启成功
4、修改root默认密码,输入刚刚记下的密码,进入到mysql

mysql -uroot -p

5、修改密码

#修改密码为123456
set password for root@localhost = password('123456');

常见错误:

[root@localhost mysql]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

原因是找不sock,我们查看my.cnf可以看见

cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
skip-name-resolve
#设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

mysql.sock的地址是/var/lib/mysql/mysql.sock,所以需要建立软链接

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
执行后:
[root@localhost tmp]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@localhost tmp]#

输入正确密码即可
6、修改密码后,退出(快捷键:ctrl+d)重新登录下:

mysql -uroot -p123456

四、开放远程登录&& 测试本地客户端连接

# 1、登录mysql数据库
mysql -uroot -p123456
# 2、切换到mysql数据库
use mysql;
# 3、修改用户权限
update user set user.Host='%' where user.User='root';
# 4、刷新权限
flush privileges;

远程连接不上,关闭防火墙,或者开放端口

关闭防火墙

# 关闭防火墙
# 查看状态,若是启动的
systemctl status firewalld.service
# 关闭防火墙
systemctl stop firewalld.service
# 永久关闭防火墙
systemctl disable firewalld.service
# 开启防火墙
systemctl start firewalld.service

开放端口

# 常见开启
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=22/tcp --permanent
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=53/udp --permanent
# 常见关闭
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=443/tcp --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --zone=public --remove-port=21/tcp --permanent
firewall-cmd --zone=public --remove-port=53/udp --permanent
# 批量添加
firewall-cmd --zone=public --add-port=4400-4600/udp --permanent
firewall-cmd --zone=public --add-port=4400-4600/tcp --permanent

# 查看端口
firewall-cmd --permanent --list-port

#查看状态
systemctl status firewalld或者 firewall-cmd --state

# 重新加载配置文件
firewall-cmd --reload

开放远程登录这时候我们就可以用 navicat、sqlyog 等链接工具来连接数据库了,端口 3306;自己可以测试一下,如果是直接在 linux 中用就不用测试了。

五、mysql创建新用户

1、创建用户

# 创建用户,test:用户名 123456:密码,10.200.100.130:指定ip可访问,若要其它可访问,则设置为%
CREATE USER 'test'@'10.200.100.130' IDENTIFIED BY '123456';
# 赋予服务器权限(这里是所有的权限)
GRANT GRANT OPTION ON *.* TO 'test'@'10.200.100.130';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test'@'10.200.100.130';

2、赋予指定数据库权限

GRANT SELECT, INSERT, UPDATE, REFERENCES, DELETE, CREATE, DROP, ALTER, INDEX, TRIGGER, CREATE VIEW, SHOW VIEW, EXECUTE, ALTER ROUTINE, CREATE ROUTINE, CREATE TEMPORARY TABLES, LOCK TABLES, EVENT ON `ec`.* TO 'test'@'10.200.100.130';
# ec:数据库名称
GRANT GRANT OPTION ON `ec`.* TO 'test'@'10.200.100.130';

二、docker安装mysql5.7

1、拉取镜像

docker pull mysql:5.7

2、安装MySQL的多级安装目录
使用 -p 创建多级目录,即 mydata 目录下创建 mysql 目录, mysql 目录下又创建 log 、data 、conf 三个目录:

mkdir -p /mydata/mysql/log
mkdir -p /mydata/mysql/data
mkdir -p /mydata/mysql/conf

3、创建容器:使用自定义的 custom.cnf 配置文件。

(1)在 /mydata/mysql/conf/ 目录下创建自定义的 custom.cnf 配置文件。
文件名随意,文件格式必须为 .cnf 。

命令:
vim /mydata/mysql/conf/custom.cnf

(2)添加容器运行的配置参数。使用的是 utf8mb4 编码而不是 utf8 编码;
配置内容:

[client]
default-character-set=utf8mb4
 
[mysql]
default-character-set=utf8mb4
 
[mysqld]
init_connect="SET collation_connection = utf8mb4_unicode_ci"
init_connect="SET NAMES utf8mb4"
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

(3)创建容器并运行。
指定了名称,映射了目录,指定了端口,指定了密码,指定了总是开机自启

docker run --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --restart=always -d mysql:5.7

查看启动情况:

[root@localhost ~]# docker run --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --restart=always -d mysql:5.7
bb0403286dcd61d6aaa80214958b56d5d637eb8a3c12da5a584c2bc1e0196eda
[root@localhost ~]# docker ps -a
CONTAINER ID   IMAGE       COMMAND                  CREATED          STATUS         PORTS                               NAMES
bb0403286dcd   mysql:5.7   "docker-entrypoint.s…"   16 seconds ago   Up 5 seconds   0.0.0.0:3306->3306/tcp, 33060/tcp   mysql

4、进入容器

docker exec -it mysql bash

登录mysql:

mysql -u root -p123456

切换到 mysql 数据库,并查看 user 表。

use mysql;
select user,host from user;

在这里插入图片描述
远程连接:
在这里插入图片描述

CentOS 7 下载并安装 MySQL 5.7 的步骤大致包括以下几个部分: ### 步骤一:更新系统包 首先需要确保您的 CentOS 系统是最新的,这可以帮助避免潜在的兼容性和安全问题。 ```bash sudo yum update -y ``` ### 步骤二:配置yum源获取MySQL包 由于 MySQL 8.x 已经成为默认版本,我们需要从额外的源获取 MySQL 5.7 版本。您可以在官方仓库中查找或使用社区提供的第三方源,例如 YumBase 或 Homebrew for Linux。 一种常见的方式是从 MySQL 官方提供的二进制包进行安装。您需要先将 MySQL GPG 密钥添加到系统的信任列表中,并添加官方仓库的 YUM 源。 #### 添加 MySQL GPG 密钥 ```bash wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm sudo rpm -Uvh mysql57-community-release-el7-11.noarch.rpm ``` #### 检查已添加的源是否有效 ```bash rpm -qa | grep mysql ``` 应该能看到包含 MySQL 相关包的信息。 ### 步骤三:安装 MySQL 5.7 使用 `yum` 命令安装 MySQL 服务器及客户端。 ```bash sudo yum install mysql-server mysql-client -y ``` ### 步骤四:启动服务并设置开机自启 启动 MySQL 服务,并将其设为开机自动启动。 ```bash sudo systemctl start mysqld sudo systemctl enable mysqld ``` ### 步骤五:初始化数据库 MySQL 在首次启动时会创建一些必要的表结构,您可以使用命令行进行这一操作。 ```bash sudo systemctl status mysqld sudo mysql_secure_installation ``` 最后一步会询问您是否更改 root 用户密码、删除匿名用户等安全性设置。根据提示操作即可完成基本的安全设置。 ### 步骤六:登录并验证安装 使用刚刚设置的新密码,通过命令行连接 MySQL。 ```bash mysql -u root -p ``` 输入密码后,就可以看到 MySQL 的命令行界面了。 为了确认 MySQL 是否成功安装并运行正常,可以执行一些基本的 SQL 查询操作,比如查看当前所有数据库列表: ```sql SHOW DATABASES; ``` 至此,MySQL 5.7 应该已经成功安装在 CentOS 7 上。您可以开始使用它进行数据管理了。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值