linux---- centos7系统安装MYSQL5.7详细步骤

一、关闭防火墙:

以下为 CENTOS7或者RHEL7的方法
检查防火墙状态
systemctl status firewalld.service
暂时关闭防火墙,下次启动时防火墙仍随系统启动而启动
systemctl stop firewalld.service
彻底永久关闭防火墙(建议使用)
systemctl disable firewalld.service

关闭SELINUX防火墙!
vi /etc/selinux/config
将内容
SELINUX=enforcing
更改为
SELINUX=disabled

如果是CENTOS 6的话关闭防火请就直接使用
service iptables stop
chkconfig iptables off
SELINUX方法不变

一 先查看本机IP地址和主机名 并添加进/etc/hosts文件中,这一步很重要,一定要去添加,省的避免以后产生麻烦的事情。

命令如下:

查看IP地址 : ifconfig -a / ip a(2个命令都可以查询)
查看主机名 : hostname
然后修改/etc/hosts文件:
vi /etc/hosts

添加内容:ip 主机名


二 、下载mysql的安装包。这个就不用我说了吧!自己去ORACLE网站上搞一下。

oracle官网下载相应版本的mysql数据库

三 、上传安装包到指定的目录下我这里放到了/usr/local下

四 检查服务器上是否之前安装过MYSQL 。如果安装过CENTOS 6上将会有mysql 5.1.5xxxx出现,CENTOS 7上将会是mariadb。检查命令如下:

CENTOS6: rpm -qa |grep mysql --检查是否有mysql

CENTOS7: rpm -qa |grep mariadb

我这里已经没有了,你们在你们自己的机器上检查一下吧,LINUX系统有时候会自带的,如果想要删除之前的版本请用

rpm -e xxxxx(你用上面的命令检查出来的) --nodeps (–nodep代表不考虑关联删除)。
例:
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps (根据自己实际的Mariadb版本选择)

五 上传你刚才下载的MYSQL安装包,并且解压改目录名称

cd /usr/local

MYSQL 5.6 按照以下执行
解压
tar xzvf mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz
改目录名称
mv mysql-5.6.25-linux-glibc2.5-x86_64 mysql

MYSQL 5.7 按照以下执行
tar xzvf mysql-5.7.32-el7-x86_64.tar.gz
改目录名称
mv mysql-5.7.32-el7-x86_64 mysql

六 创建数据文件目录与日志文件目录等相关目录并创建mysql用户和组

mkdir -p /data/mysql_data
mkdir -p /data/mysql_log
mkdir -p /data/log-bin
groupadd mysql
useradd -g mysql mysql
chown -R mysql.mysql /data/mysql_data /data/mysql_log /data/log-bin
chown -R mysql.mysql /usr/local/mysql

七 创建my.cnf文件

vi /etc/my.cnf
[mysqld]

GENERAL

user = mysql
collation_server=utf8mb4_general_ci
character_set_server=utf8mb4
default-storage-engine = InnoDB
socket = /data/mysql_data/mysql.sock
pid-file = /data/mysql_data/mysql.pid
port = 3306

MyISAM

key_buffer_size = 1000M
#myisam_recover = FORCE,BACKUP

SAFETY

max_allowed_packet = 16M
max_connect_errors = 1000000
skip_name_resolve

DATA STORAGE

datadir = /data/mysql_data/
long_query_time = 1

BINARY LOGGING

binlog-format = ROW
log-bin = /data/log-bin/mysql-bin-3306
expire-logs-days = 14
sync-binlog = 1
max_binlog_size = 500M

CACHES AND LIMITS

tmp_table_size = 32M
max_heap_table_size = 32M
max_connections = 500
thread_cache_size = 50
open_files_limit = 65535
table_definition_cache = 4096
table_open_cache = 4096

INNODB

innodb_data_file_path = ibdata1:128M;ibdata2:10M:autoextend
innodb_flush_method = O_DIRECT
innodb_log_files_in_group = 2
innodb_lock_wait_timeout = 50
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_thread_concurrency = 8
innodb_buffer_pool_size = 8G

LOGGING

log-error = /data/mysql_log/mysql-error-3306.log
log-queries-not-using-indexes = 1
slow-query-log = 1
long_query_time = 1
slow-query-log-file = /data/mysql_log/mysql-slow-3306.log
server-id = 1
[client]
default_character-set=utf8mb4


八 配置系统服务

cp -af /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#############################################
vi /etc/init.d/mysqld
修改两处位置:
basedir=/usr/local/mysql
datadir=/data/mysql_data
#############################################


九 执行如下命令 让我们的mysql开机启动

chmod 755 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 345 mysqld on

检查是否成功
chkconfig mysqld --list

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off <成功>


十 初始化你的数据库

MYSQL 5.6:

cd /usr/local/mysql

./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf

MYSQL 5.7:

cd /usr/local/mysql/bin

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql_data

并添加环境变量

vim /etc/profile
export MYSQL_HOME=“/usr/local/mysql”
export PATH=“ P A T H : PATH: PATH:MYSQL_HOME/bin”
保存退出
. /etc/profile


十一 启动数据库

输入以下命启动数据库:

service mysqld start

登录mysql

mysql -uroot -p --然后这里出现Enter password:的时候直接按回车即可

或者直接使用 mysql

如果CENTOS6或者CENTOS 7出现以下两个问题:

第一:如果出现了下面的错误:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
用下面的命令去解决,直接复制粘贴!
ln -s /data/mysql_data/mysql.sock /tmp/mysql.sock

然后再重复上面的mysql -uroot -p命令,并在Enter password的时候直接回车

这时可能会出现第二情况,报错如下:

mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO)

解决方案:
使用这个命令找到密码:
cat /data/mysql_log/mysql-error-3306.log|grep password
密码为最后一个A temporary password is generated for root@localhost: 冒号后的内容就是密码
注:由于可能会出现标点符号的情况,比如说:',.!‘等,也一并复制不能缺就是root@localhost:后面出现什么你就复制什么
mysql -uroot -p’xxxx’ 这里面放冒号后的内容


十二 MYSQL安装完成以后的配置

MYSQL 5.7修改密码的方式:
由于MYSQL在安装好后提供了一个临时密码给我们,所以我们必须要将临时密码给修改成持久密码才能正常使用mysql。

set password=password(“root”); --修改数据库的密码,密码的内容为(“xxxx”)里面的内容
GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
注:以上语句5.6也可以使用。

mysql>FLUSH PRIVILEGES;

以上两个操作都做完以后刷新权限 或者你做一个刷新一次

mysql>exit

好看到这里我们的mysql数据库就安装完成。

猜你喜欢

转载自blog.csdn.net/m0_67929156/article/details/131504697