Linux系统安装二进制包Mysql5.7详解

最近在Linux上安装了二进制包版本的Mysql5.7,特此记录一下。

 

1、首先进入Mysql官方进行Mysql社区版的下载

官网下载链接:https://dev.mysql.com/downloads/mysql/

进入链接,选择历史版本,这里我们选择5.7版本的Mysql,选择压缩的tar版本,点击下载。

2、选择安装位置:解压二进制包到/usr/local/mysql目录下面

下载完成之后,包名即为上述压缩文件。

执行 tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql

其中-C即为解压缩指定到某个目录。

3、根据官方要求,安装libaio依赖

基于yum的系统:

shell> yum search libaio 

shell> yum install libaio 

基于APT的系统:

shell> apt-cache search libaio 

shell> apt-get install libaio1 

4、查看解压缩后的目录

目录 目录的内容
bin mysqld服务器,客户端和实用程序
docs 信息格式的MySQL手册
man Unix手册页
include 包含(标题)文件
lib 图书馆
share 用于数据库安装的错误消息,字典和SQL
support-files 其他支持文件

5、创建一个mysql的用户和组

如果您的系统还没有用于运行mysqld的用户和组,则可能需要创建它们。以下命令添加mysql组和 mysql用户。您可能想要调用用户并将其他内容分组而不是mysql。如果是这样,请在以下说明中替换相应的名称。useradd和 groupadd的语法在不同版本的Unix / Linux上可能略有不同,或者它们可能有不同的名称,如 adduseraddgroup

shell> groupadd mysql

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

注意

由于仅出于所有权目的而不是登录目的而要求用户,因此useradd命令使用 -r-s /bin/false选项来创建对服务器主机没有登录权限的用户。如果您的useradd不支持它们,请忽略这些选项。

为了避免在使用MySQL时始终键入客户端程序的路径名,可以将/usr/local/mysql/bin 目录添加到PATH变量中:

shell> export PATH=$PATH:/usr/local/mysql/bin

6、创建数据文件目录并修改为mysql用户所拥有

shell> cd /usr/local/mysql

shell> mkdir data 

shell> chown mysql:mysql data

shell> chmod 750 data 

7、初始化mysql并保存初始化密码

shell> bin/mysqld --initialize --user=mysql

shell> bin/mysql_ssl_rsa_setup

8、在/etc/下面创建my.cnf文件,并参照以下配置

#dvice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

# 一般配置选项
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
#socket = /temp/mysqld.sock
socket = /var/run/mysqld/mysqld.sock
character-set-server=utf8

#下面是可选项,要不要都行,如果出现启动错误,则全部注释掉,保留最基本的配置选项,然后尝试添加某些配置项后启动,检测配置项是否有误
back_log = 300
max_connections = 3000
max_connect_errors = 50
table_open_cache = 4096
max_allowed_packet = 32M
#binlog_cache_size = 4M

max_heap_table_size = 128M
read_rnd_buffer_size = 16M
sort_buffer_size = 16M
join_buffer_size = 16M
thread_cache_size = 16
query_cache_size = 128M
query_cache_limit = 4M
ft_min_word_len = 8

thread_stack = 512K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 128M
#log-bin=mysql-bin
long_query_time = 6

server_id=1

innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_buffer_size = 16M

innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = on

[mysqldump]
quick

max_allowed_packet = 32M

[mysql]
no-auto-rehash
socket = /var/run/mysqld/mysqld.sock
default-character-set=utf8
safe-updates

[myisamchk]
key_buffer = 16M
sort_buffer_size = 16M
read_buffer = 8M
write_buffer = 8M

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
open-files-limit = 8192

[client]
loose-default-character-set = utf8

9、启动mysql

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

shell> vim /etc/init.d/mysql             ##修改basedir=  自己的路径     修改datadir= 自己的路径

shell> bin/mysqld_safe --user=mysql &  ##启动mysql

10、修改登录密码

执行 mysql -u root -p     #登录mysql

执行 SET PASSWORD = PASSWORD('root')      #其中的root即为新的密码

11、修改可远程访问

mysql>use mysql;

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

12、重启mysql服务

shell> /etc/init.d/mysqld restart

 

注意:有的系统可能会报错如下:

mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists 

The server quit without updating PID file (/usr/local/mysql/data/mysql.pid)

解决办法 :

mkdir /var/run/mysqld

chown -R mysql:mysql /var/run/mysqld

chmod 755  /var/run/mysqld

再启动mysql就可以了。

 

你可能感兴趣的:(数据库)