mysql5.7 二进制安装_MYSQL第一节:Mysql5.7 通用二进制安装方法

操作系统:CentOS 7.6

参考文档:

实际安装过程中,有些地方会与文档写的不一样。

如果本地有安装mariadb-libs,先卸载掉

[root@iZ8vbaz7sozl7oh8vu9vrsZ ~]# rpm -qa|grep mariadb

mariadb-libs-5.5.60-1.el7_5.x86_64

[root@iZ8vbaz7sozl7oh8vu9vrsZ ~]# yum remove mariadb-libs-5.5.60-1.el7_5.x86_64 -y

警告:MySQL对libaio库有依赖性。如果未在本地安装该库,则数据目录初始化和随后的服务器启动步骤将失败。

1、

先在操作系统安装libaio 库。

yum install libaio

2、

获取下载地址

29916444b01290f9af0b4670d3142229.png

下载命令:

wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

2、

shell> groupadd mysql

shell> useradd -r -g mysql -s /bin/false mysql

shell> cd /usr/local

shell> tar zxvf /root/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

shell> ln -s /usr/local/mysql-5.7.29-linux-glibc2.12-x86_64 mysql

shell> cd mysql

shell> mkdir mysql-files

shell> chown mysql:mysql mysql-files

shell> chmod 750 mysql-files

shell> chown mysql.mysql /usr/local//mysql

shell> bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

/*******

注意:这步执行完成后会显示初始化的root用户密码

2020-05-14T05:38:52.063819Z 1 [Note] A temporary password is generated for root@localhost: O(TsKbE/I9hw

密码是:O(TsKbE/I9hw

********/

shell> bin/mysql_ssl_rsa_setup

/********

这一步不执行也可以,执行之后会开启SSL

********/

shell> bin/mysqld_safe --user=mysql &

会显示如下日志,11382是mysqld_safe进程号:

[1] 11382

[root@iZ8vbaz7sozl7oh8vu9vrsZ mysql]# Logging to '/usr/local/mysql/data/iZ8vbaz7sozl7oh8vu9vrsZ.err'.

2020-05-15T00:20:24.365985Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

shell>ps -ef|grep mysql

可以看下有没有mysql进程,这里会出现两个,一个mysqld_safe,一个mysqld,本质上是mysqld命令去启动数据库,使用mysqld_safe启动数据库,它也是调用了mysqld命令去启动数据库,它会对mysqld进程做一些监控,如果mysqld进程挂掉,它会把mysqld进程重新拉起来。mysqld_safe可以理解为守护进程。

[root@iZ8vbaz7sozl7oh8vu9vrsZ mysql]# ps -ef|grep mysql

root 11382 11302 0 08:20 pts/0 00:00:00 /bin/sh bin/mysqld_safe --user=mysql

mysql 11452 11382 0 08:20 pts/0 00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=iZ8vbaz7sozl7oh8vu9vrsZ.err --pid-file=iZ8vbaz7sozl7oh8vu9vrsZ.pid

root 11484 11302 0 08:20 pts/0 00:00:00 grep --color=auto mysql

shell> cp support-files/mysql.server /etc/init.d/mysql.server

bin/mysql -uroot -p

mysql> select user,host from mysql.user;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

需要先修改密码。

mysql> alter user 'root'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+---------------+-----------+

| user | host |

+---------------+-----------+

| mysql.session | localhost |

| mysql.sys | localhost |

| root | localhost |

+---------------+-----------+

3 rows in set (0.00 sec)

mysql> update mysql.user set host ='%' where user='root';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

在操作系统杀掉myql进程。

kill 11382;

kill 11452;

使用mysql服务启动竟然报错了,

[root@iZ8vbaz7sozl7oh8vu9vrsZ mysql]# service mysql start

Redirecting to /bin/systemctl start mysql.service

Failed to start mysql.service: Unit not found.

在一篇博客中找到了答案,

参考解决方法二。

在 /etc/systemd/system/mysqld.service 添加Unit,既然错误提示找不到Unit那我们添加一个就好了。在 /etc/systemd/system/mysqld.service下添加如下内容

[Unit]

Description=MySQL Server

After=network.target

[Service]

ExecStart=/usr/bin/mysqld --defaults-file=/etc/mysql/my.cnf --datadir=/var/lib/mysql --socket=/var/run/mysqld/mysqld.sock User=mysql

Group=mysql

WorkingDirectory=/usr

[Install]

WantedBy=multi-user.target

再操作系统执行:systemctl daemon-reload

再启动就可以成功了。

[root@iZ8vbaz7sozl7oh8vu9vrsZ mysql]# service mysql start

Redirecting to /bin/systemctl start mysql.service

vi ~/.bash_profile

在【export PATH】前加入

PATH=$PATH:/usr/local/mysql/bin

source ~/.bash_profile

在任意目录下执行都可以调用到mysql命令。

至此,mysql已经完成完成,并且可以正常使用。但所有参数都是默认值。

停掉数据库,修改一些参数。

service mysql stop

[root@iZ8vbaz7sozl7oh8vu9vrsZ data]# touch /usr/local/mysql/mysqld.log

[root@iZ8vbaz7sozl7oh8vu9vrsZ data]# chown mysql.mysql /usr/local/mysql/mysqld.log

配置文件说明比较详细

修改一些参数,方便后期主备复制使用。

vi /etc/my.cnf

[client]

port= 3306socket= /tmp/mysql.sock

[mysqld]

#基本设置

server-id=1port=3306skip-name-resolve

character_set_server=utf8

init_connect='SET NAMES utf8'basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/tmp/mysql.sock

tmpdir=/tmp

log-error=/usr/local/mysql/mysqld.log

pid-file=/usr/local/mysql/mysqld.pid

#不区分大小写

lower_case_table_names= 1sql_mode=''

default-time_zone = '+8:00'transaction_isolation= READ-COMMITTED

max_connections=1000interactive_timeout= 7200wait_timeout= 7200max_allowed_packet=1024M

tmp_table_size=64M

max_heap_table_size=64M

read_rnd_buffer_size=1M

sort_buffer_size=1M

join_buffer_size=1M

table_open_cache= 2000thread_cache_size= 16thread_stack=512k

slow_query_log= 1long_query_time= 3log_bin= mysql-bin.log

max_binlog_size=1024M

binlog_format=row

binlog_row_image=full

log_slave_updates

sync_binlog= 1innodb_flush_log_at_trx_commit=1innodb_buffer_pool_size=512M

innodb_buffer_pool_instances= 1innodb_lock_wait_timeout= 60innodb_io_capacity= 2000innodb_io_capacity_max= 4000innodb_flush_method= O_DIRECT

启动数据库

service mysql start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值