赞
踩
虚拟机软件:VMware Workstation 15 Pro
虚拟机系统:CentOS Linux release 7.2.1511 (Core)
虚拟机内存:4G
MySQL 在 CentOS 上有三种安装方式:
下载地址:https://dev.mysql.com/downloads/mysql/
操作系统选择:Linux - Generic
首先,将二进制包上传到/tmp目录下,然后按照下面的步骤进行安装。其中5.7之前和之后的版本在初始化时稍有不同。
# 卸载系统自带的mariadb rpm -qa | grep mariadb rpm -evh --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 # 或者使用yum yum list installed | grep mariadb yum -y remove mariadb-libs.x86_64 # 创建用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 切换到/tmp目录,解压 cd /tmp tar zxvf mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz #tar zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz # 将解压后的目录移动到/usr/local目录下 mv mysql-5.5.62-linux-glibc2.12-x86_64 /usr/local/mysql #mv mysql-5.6.44-linux-glibc2.12-x86_64 /usr/local/mysql chown mysql:mysql -R /usr/local/mysql # 初始化数据目录 cd /usr/local/mysql/ scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data # 启动和关闭 cp support-files/my-medium.cnf /etc/my.cnf ## 版本5.5 bin/mysqld_safe --user=mysql & bin/mysqladmin shutdown # 配置MySQL开机自动启动 cp support-files/mysql.server /etc/init.d/mysql.server chmod 755 /etc/init.d/mysql.server systemctl enable mysql.server
# 卸载系统自带的mariadb rpm -qa | grep mariadb rpm -evh --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 # 或者使用yum yum list installed | grep mariadb yum -y remove mariadb-libs.x86_64 # 创建用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 切换到/tmp目录,解压 cd /tmp tar zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz # 将解压后的目录移动到/usr/local目录下 mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql chown mysql:mysql -R /usr/local/mysql # 初始化数据目录 cd /usr/local/mysql/ mkdir mysql-files chmod 750 mysql-files bin/mysqld --initialize --user=mysql #初始化时会为root@localhost账号生成一个临时密码 # 启动和关闭(关闭时需要输入密码) bin/mysqld_safe --user=mysql & bin/mysqladmin shutdown -p # 配置MySQL开机自动启动 cp support-files/mysql.server /etc/init.d/mysql.server chmod 755 /etc/init.d/mysql.server systemctl enable mysql.server
我们可以自己创建数据库和日志存放目录,配置文件等。在初始化时通过参数指定这些自定义的目录和文件。
首先,将安装包上传到/tmp
目录,将准备好的配置文件(比如:my3306.cnf)上传到/etc
目录下。然后,按照下面的步骤进行安装。
# 创建用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 切换到/tmp目录,解压 cd /tmp tar zxvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz # 将解压后的目录移动到/usr/local目录下 cp -rf mysql-5.6.44-linux-glibc2.12-x86_64 /usr/local/mysql chown mysql:mysql -R /usr/local/mysql # 创建数据库目录和日志目录 mkdir -p /data/mysql3306/mysql3306 mkdir -p /data/mysql3306/logs chown mysql:mysql -R /data # 初始化数据目录 /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql3306/mysql3306 --defaults-file=/etc/my3306.cnf --user=mysql # 启动服务 /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --user=mysql & # 连接数据库 /usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock # 配置环境变量 vim /etc/profile # 添加内容: export PATH=$PATH:/usr/local/mysql/bin # 配置MySQL开机自动启动 cp support-files/mysql.server /etc/init.d/mysql.server chmod 755 /etc/init.d/mysql.server systemctl enable mysql.server
my3306.cnf
文件的内容:
[client] port= 3306 socket= /tmp/mysql3306.sock secure_auth= false [mysqld] port= 3306 socket= /tmp/mysql3306.sock datadir= /data/mysql3306/mysql3306 #read_only= on ##--- GLOBAL ---## character_set_server = utf8 lower_case_table_names = 1 log-output = FILE log-error = /data/mysql3306/logs/mysql-error.log #general_log general_log_file = /data/mysql3306/logs/mysql.log pid-file = /data/mysql3306/mysql.pid slow-query-log = 1 slow_query_log_file = /data/mysql3306/logs/mysql-slow.log tmpdir = /tmp/ long_query_time = 2 innodb_force_recovery = 0 #innodb_buffer_pool_dump_at_shutdown = 1 #innodb_buffer_pool_load_at_startup = 1 ##--------------## #thread_concurrency = 8 thread_cache_size = 51 table_open_cache = 16384 open_files_limit = 65535 table_definition_cache = 16384 sort_buffer_size = 2M join_buffer_size = 2M read_buffer_size = 2M read_rnd_buffer_size = 8M key_buffer_size = 32M bulk_insert_buffer_size = 16M myisam_sort_buffer_size = 64M tmp_table_size = 32M max_heap_table_size = 16M query_cache_size = 32MB #gtid_mode=on #log_slave_updates=1 #enforce_gtid_consistency=1 ##--- NETWORK ---## back_log = 103 max-connections = 512 max_connect_errors = 100000 max_allowed_packet = 32M interactive_timeout = 600 wait_timeout = 600 skip-external-locking #max_user_connections = 0 external-locking = FALSE #skip-name-resolve ##--- REPL ---## server-id = 28703306 sync_binlog = 1 log-bin = mysql-bin binlog_format = row expire_logs_days = 10 relay-log = relay-log replicate-ignore-db = test log_slave_updates =1 #skip-slave-start binlog_cache_size =4M max_binlog_cache_size =8M max_binlog_size =1024M ##--- INNODB ---## default_storage_engine = InnoDB innodb_data_file_path = ibdata1:1024M:autoextend innodb_buffer_pool_size = 1040M innodb_buffer_pool_instances = 1 innodb_additional_mem_pool_size = 16M innodb_log_files_in_group = 2 innodb_log_file_size = 256MB innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 30 innodb_flush_method = O_DIRECT innodb_max_dirty_pages_pct = 75 innodb_io_capacity = 200 innodb_thread_concurrency = 32 innodb_open_files = 65535 innodb_file_per_table = 1 transaction_isolation = REPEATABLE-READ innodb_locks_unsafe_for_binlog = 0 #innodb_purge_thread = 4 [mysqldump] quick max_allowed_packet = 32M [mysql] auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default_character_set=utf8 [mysqlhotcopy] interactive-timeout
既可以下载 RPM 安装包进行手动安装,也可以通过 yum 工具进行安装。
前提:虚拟机能够访问互联网。
特点:不需要手动卸载系统自带的 MariaDB,yum 工具会自动帮我们卸载。
首先,下载配置 yum 仓库的 rpm 包:mysql80-community-release-el7-3.noarch.rpm
下载地址:https://dev.mysql.com/downloads/repo/yum/
然后将其上传到虚拟机的/tmp
目录进行安装。
yum localinstall mysql80-community-release-el7-3.noarch.rpm
# 确认
yum repolist enabled | grep "mysql.*-community.*"
安装成功后,可以在/etc/yum.repos.d/
目录下找到两个新增的的 repo
文件:mysql-community.repo
和 mysql-community-source.repo
。
默认启用的是最新版本 MySQL 的 Yum Repository,如下所示,是mysql-community.repo
文件中的部分内容:
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
国外的yum源可能会比较慢,最好可以修改为国内的。比如可以将上面5.7的baseurl
修改为网易的地址:http://mirrors.163.com/mysql/Downloads/MySQL-5.7/
若要安装其它版本的 MySQL ,则需要需改上面的配置文件,也可以使用下面的命令:
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
# 用yum安装
yum -y install mysql-community-server
# 启动MySQL服务
systemctl start mysqld.service
# 查看服务状态
systemctl status mysqld.service
若查看服务状态时,是下面的结果,说明 MySQL 服务没有设置为开机启动。
[root@localhost ~]## systemctl status mysqld.service
● mysqld.service - MySQL Community Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
......
可使用下面的命令将 MySQL 服务设置为开机启动。
systemctl enable mysqld.service
下载地址:https://dev.mysql.com/downloads/mysql/
操作系统:Red Hat Enterprise Linux / Oracle Linux
系统版本:Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
可下载的 RPM Bundle:
MySQL-5.5.62-1.el7.x86_64.rpm-bundle.tar
MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
首先卸载系统自带的 MariaDB:
# 使用rpm卸载
rpm -qa | grep mariadb
rpm -evh --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
将下载的安装包上传到虚拟机,并安装
# 版本5.5 tar -xvf MySQL-5.5.62-1.el7.x86_64.rpm-bundle.tar rpm -ivh MySQL-server-5.5.62-1.el7.x86_64.rpm rpm -ivh MySQL-client-5.5.62-1.el7.x86_64.rpm # 版本5.6 tar xvf MySQL-5.6.44-1.el7.x86_64.rpm-bundle.tar rpm -ivh MySQL-server-5.6.44-1.el7.x86_64.rpm rpm -ivh MySQL-client-5.6.44-1.el7.x86_64.rpm # 版本5.7 tar xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm # 版本5.8 tar xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
启动服务:
# 5.7之前的版本
mysqld_safe --user=mysql &
# 5.7版本,及之后的版本
systemctl start mysqld.service
有两种方法来使用源码安装MySQL:
使用源码安装所需的前提条件:
CMake
,用来在所有平台上构建框架,可以从 http://www.cmake.org 来下载CMake
。ANSI C++
编译器。可以对force_unsupported_compiler的描述。ncurses
库,可从 https://www.gnu.org/software/ncurses/ncurses.html 下载。perl
。大多数类Unix的系统已经包含了perl
。在windows上可以使用 ActiveState Perl。如果使用标准源码安装,还需要下面的工具来解压源码文件:
.tar.gz
的压缩tar文件,GNU gunzip
命令可以用来解压,tar
命令用来unpack。如果你的tar
命令支持z选项,它可以用来解压与 unpack文件。.zip
归档文件,winzip或另外的工具可以读取.zip文件。.rpm
的RPM包,rpmbuild
命令用来对构建的发布版本进行unpack操作。若使用开发源码树来安装MySQL,需要安装以下额外的工具:
bison 2.1
或更高版本,可以从 http://www.gnu.org/software/bison/ 网址进行下载(1版本不再支持),尽可能的使用最新版本。bison
之外m4
必须被安装。m4
可以从 http://www.gnu.org/software/m4/ 网址下载。将源码包mysql-version.tar.gz
上传到虚拟机,然后按照下面的步骤进行安装。
5.7之前的版本
# 卸载系统自带的mariadb rpm -qa | grep mariadb rpm -evh --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 # 安装所需的工具包 yum -y install cmake* make* gcc* gcc-c++ ncurses* ncurses-devel* perl* # 创建mysql用户 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 解压并安装 tar zxvf mysql-5.5.62.tar.gz cd mysql-5.5.62/ #tar zxvf mysql-5.6.45.tar.gz #cd mysql-5.6.45/ mkdir bld cd bld cmake .. make make install # 初始化 cd /usr/local/mysql chown -R mysql:mysql . scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data # 启动服务 cp support-files/my-medium.cnf /etc/my.cnf ##5.5 bin/mysqld_safe --user=mysql & # 配置开机启动 cp support-files/mysql.server /etc/init.d/mysql.server chmod 755 /etc/init.d/mysql.server systemctl enable mysql.server
5.7版本
下载boost_1_59_0.tar.gz
并上传到虚拟机的/tmp
目录。
下载地址:https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# 卸载系统自带的mariadb rpm -qa | grep mariadb rpm -evh --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 # 安装所需的工具包 yum -y install cmake* make* gcc* gcc-c++ ncurses* ncurses-devel* perl* cd /tmp tar zxvf boost_1_59_0.tar.gz mv boost_1_59_0 /usr/local/ # 创建mysql用户 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 解压并安装 tar zxvf mysql-5.7.27.tar.gz cd mysql-5.7.27/ mkdir bld cd bld cmake .. -DWITH_BOOST=/usr/local/boost_1_59_0 make make install # 初始化 cd /usr/local/mysql mkdir mysql-files chown mysql:mysql mysql-files bin/mysqld --initialize --user=mysql bin/mysql_ssl_rsa_setup # 启动服务 bin/mysqld_safe --user=mysql & # 配置开机启动 cp support-files/mysql.server /etc/init.d/mysql.server chmod 755 /etc/init.d/mysql.server systemctl enable mysql.server
从GitHub获取源码进行安装,与使用标准源码安装类似,只是获取源码的方式不一样。
# 安装Git
yum -y install git
# 克隆MySQL仓库到本地
git clone https://github.com/mysql/mysql-server.git
# 切换到mysql-server目录
cd mysql-server
启动成功之后就可以使用mysql
命令进行连接了。
MySQL 5.7之前的版本可以在本地直接连接,不需要输入密码。如下所示:
[root@localhost ~]## mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.62 MySQL Community Server (GPL)
Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
对于5.7及之后的版本:
a) 若MySQL是通过rpm包安装的,服务在启动时会创建超级账户'root'@'localhost'
,并为其生成一个临时的密码,可通过下面的命令进行查看:
# 直接连接会报错
[root@localhost ~]## mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# 查看临时密码
[root@localhost ~]## grep 'temporary password' /var/log/mysqld.log
# 用root账户连接,需输入密码
[root@localhost ~]## mysql -uroot -p
b) 若MySQL是通过通用的二进制包或者源码安装的,在初始化的时候会生成一个临时密码,在终端输出的日志中可以看到,如下所示:
[root@localhost mysql]## bin/mysqld --initialize --user=mysql
2019-07-22T08:51:10.366309Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-07-22T08:51:11.141264Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-07-22T08:51:11.245915Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-07-22T08:51:11.319143Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: dabbd8fc-ac5d-11e9-8579-000c29562563.
2019-07-22T08:51:11.324567Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-07-22T08:51:11.329523Z 1 [Note] A temporary password is generated for root@localhost: Zyreghpk3n_s
连接之后,需要将临时密码改掉之后才能进行其它操作:
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
https://dev.mysql.com/doc/refman/5.5/en/
https://dev.mysql.com/doc/refman/5.6/en/
https://dev.mysql.com/doc/refman/5.7/en/
https://dev.mysql.com/doc/refman/8.0/en/
http://www.jydba.net/linux%E4%BD%BF%E7%94%A8%E6%BA%90%E7%A0%81%E6%9D%A5%E5%AE%89%E8%A3%85mysql-5-7/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。