一、yum安装
1.下载并安装MySQL官方的 Yum Repository:
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.安装用的Yum Repository:
yum -y install mysql57-community-release-el7-10.noarch.rpm
3.安装MySQL服务器:
yum -y install mysql-community-server
4.启动MySQL:
systemctl start mysqld.service
5.查看MySQL运行状态,运行状态如图:
systemctl status mysqld.service
6.修改初始密码:
通过如下命令可以在日志文件中找出密码:
grep "password" /var/log/mysqld.log
进入数据库:
mysql -uroot -p
初始密码不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Yxhy@2019';
查看密码策略:
show variables like '%password%';
修改密码策略:
vim /etc/my.cnf
添加validate_password_policy配置:
选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
#添加validate_password_policy配置
validate_password_policy=0
#关闭密码策略
validate_password = off
重启mysql服务使配置生效
systemctl restart mysqld
7. 修改mysql的字符编码(不修改会产生中文乱码问题)
显示原来编码:
show variables like '%character%';
修改/etc/my.cnf添加一下命令:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
8.远程连接授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Yxhy@2019' WITH GRANT OPTION;
9.刷新:FLUSH PRIVILEGES
10.连接测试:
以上安装方式就是yum安装。
二、普通rpm包安装
1.下载mysql的rpm全安装包,并解压
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
tar -xf mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
解压出来的文件如下图:
2.查询并卸载系统自带的Mariadb和旧版mysql以便在安装时报冲突和错误
rpm -qa |grep mariadb
rpm -e --nodeps 上一条命令查询出来的文件名
rpm -qa |grep mysql
rpm -e --nodeps 上一条命令查询出来的文件名
3.开始安装mysql的依赖包和服务器包和客户端包,一次执行以下命令:
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm
4.查看mysql的启动状态,并启动mysql
service mysqld status
systemctl start mysqld
5.查看生成的mysql初始密码复制并保存:
grep 'temporary password' /var/log/mysqld.log
6.用初始密码登陆mysql
mysql -u root -p
7.修改密码,后退出
SET PASSWORD FOR 'root'@'localhost'="Yxhy@2019";
exit;
8.无密码登陆修改权限并开放3306端口:
停止mysql
systemctl stop mysqld.service
修改mysql的配置文件,在[mysqld]下面加入以下命令,保存退出
skip-grant-tables
重启并重新登陆mysql
systemctl start mysqld.service
mysql -u root此时不需要密码就能登陆
切换到mysql表修改权限:
use mysql;
update user set authentication_string=password("Yxhy@2019") where user='root' and host='localhost';
FLUSH PRIVILEGES;
exit;
重新修改mysql配置文件vim /etc/my.cnf注释掉skip-grant-tables
重启mysql并尝试新密码登陆后退出:
systemctl restart mysqld.service
mysql -u root -p
exit
9.设置开机自动重启:
systemctl enable mysqld.service;
10.设置远程登陆并开放3306端口
登陆mysql执行以下命令:
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Yxhy@2019' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
查看防火墙状态开放3306端口:
systemctl status firewalld.service
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
11.测试:
以上就是rpm包安装mysql的方法
三、二进制包安装mysql
1.查询并卸载系统自带的Mariadb和旧版mysql以便在安装时报冲突和错误
rpm -qa |grep mariadb
rpm -e --nodeps 上一条命令查询出来的文件名
rpm -qa |grep mysql
rpm -e --nodeps 上一条命令查询出来的文件名
whereis mysql
find / -name mysql
删除以上两条命令找到的所有的关于mysql的文件夹或文件
2.查看有没有旧的mysql用户和组,如果没有就添加用户组
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql
2.下载并解压二进制安装包:
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz
tar -zxvf mysql-5.7.9-linux-glibc2.5-x86_64.tar.gz
这里注意的是,我们想把mysql安装在哪就把安装包解压在哪,我的解压在了/home中
重命名解压出来的文件夹并授予归属mysql用户组,并赋予执行权限:
mv mysql-5.7.9-linux-glibc2.5-x86_64 mysql
chown -R mysql:mysql mysql
chmod -R 755 mysql
3.编译安装初始化mysql,这里注意要记住初始化密码:
cd /home/mysql/bin
./mysqld --initialize --user=mysql --datadir=/home/mysql/data --basedir=/home/mysql
4.新建mysql配置文件,添加以下内容:
vim /etc/my.cnf
[mysqld]
datadir=/home/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
5.编辑修改mysql启动文件,把以下目录改成我们自己的mysql安装目录:
vim /home/mysql/support-files/mysql.server
在73行附近,如下图:
6.启动mysql:
/home/mysql/support-files/mysql.server start
7.为了方便操作我们新建软连接,并尝试用短命令重启mysql:
ln -s /home/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /home/mysql/bin/mysql /usr/bin/mysql
service mysql restart
8.用初始化密码登陆mysql,并修改密码:
mysql -u root -p
set password for root@localhost=password('Yxhy@2019');
use mysql;
update user set host='%' where user='Yxhy@2019';
flush privileges;
exit;
9.设置开机自动重启:
cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
10.设置防火墙开启3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
11.测试连接:
以上就是二进制安装mysql方法。
四、源码编译安装mysql
1.安装依赖
yum install -y gcc gcc-c++ cmake ncurses ncurses-devel bison
2.下载mysql源码包(带boost的)
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.25.tar.gz
3.新建一个linux用户mysql
useradd -s /sbin/nologin mysql
4.创建mysql数据保存目录
mkdir -p /data/mysql/data
5.将数据目录的父目录归属于mysql用户,这个/data/mysql/目录我们也用它来存一些mysql的其他文件如mysql.pid文件
chown -R mysql:mysql /data/mysql
6.创建mysql安装目录,并把mysql源码解压到安装目录
mkdir /usr/local/mysql
tar -zxvf mysql-boost-5.7.25.tar.gz -C /usr/local/mysql/
7.进入/usr/local/mysql/mysql-5.7.25编译安装mysql
cd /usr/local/mysql/mysql-5.7.25
cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost -DWITH_EMBEDDED_SERVER=OFF
make
make install
8.新建或编辑mysql配置文件,注意如果有/etc/my.cnf就直接编辑,没有就新建。
vim /etc/my.cnf,根据需要有选择的写入以下配置项:
[client]
port = 3006
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/data
pid-file = /data/mysql/mysql.pid
log_error = /data/mysql/mysql-error.log
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql-slow.log
skip-external-locking
key_buffer_size = 32M
max_allowed_packet =1024M
table_open_cache = 128
sort_buffer_size = 768k
net_buffer_length = 8k
read_buffer_size = 768k
read_rnd_buffer_size = 512k
myisam_sort_buffer_size = 8M
thread_cache_size = 16
query_cache_size =16M
tmp_table_size = 32M
performance_schema_max_table_instances =1000
explicit_defaults_for_timestamp =true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit =65535
log_bin = mysql-bin
binlog_format=mixed
server_id = 232
expire_logs_days = 10
early-plugin-load = ""
default_storage_engine =InnoDB
innodb_file_per_table = 1
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet =16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 32M
sort_buffer_size =768k
read_buffer = 2M
write_buffer = 2M
# Disabling symbolic-links is recommended to prevent assorted security risks
# 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=/data/mysql/mariadb.log
pid-file=/data/mysql/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
确保对配置文件中涉及到的所有的目录有有权限,要不然一会儿mysql会无法启动。
9.将/usr/local/mysql/的mysq安装目录和数据保存目录/data/mysql/归属于用户mysql,也就是给mysql用户赋权
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /data/mysql/
10.初始化mysql
cd /usr/local/mysql/bin
./mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
11.将启动程序复制到/etc/init.d/mysqld方便运行启动程序,并启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
12.设置环境变量,并设置开机重启:
vim /etc/profile,在最后加入PATH=/usr/local/mysql/bin:$PATH然后保存,然后执行以下命令
source /etc/profile
设置开机重启
systemctl enable mysqld
13.进入mysql设置权限和密码
mysql -u root -p
set password for root@localhost=password('Yxhy@2019');
use mysql;
update user set host='%' where user='Yxhy@2019';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Yxhy@2019' WITH GRANT OPTION;
flush privileges;
exit;
14.防火墙开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
15.测试:
注意在编译源码安装过程中遇上几点错误。
1.如果编译时用cmake -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost命令不加-DWITH_EMBEDDED_SERVER=OFF会报如下错误
2.启动mysql时,如果对配置文件中对某个文件路径或文件没权限会报如下错误:
以上就是mysql源码编译安装。
以上四种mysql安装方式都已经写完,每一种安装方式又有其优缺点我们要可选择的安装:
rpm安装简单,适合初学者学习使用,但需要单独下载客户端和服务器,安装路径不灵活,默认路径不能修改,一台服务器只能装一个mysql
二进制安装,安装简单可以安装到任何路径,灵活性好,一台服务器能装多个mysql,二进制包是已经编译好的包,性能不如源码编译的好,不能灵活制定编译参数
源码安装可按需定制编译,最灵活,性能最好,一台服务器能安装多个mysql,但是安装过程稍微复杂点,编译时间也最长。