复杂安装
1.前置检查
#检查系统是否安装过mysql
rpm -qa|grep mysql
#查询mysql对应文件夹
whereis mysql
find / -name mysql
2.卸载自带的Mariadb
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.60-1.el7-5.x86_64
3.检查有无安装过mysql 用户组,没有的话创建
#more 或 cat
more /etc/passwd | grep mysql
more /etc/shadow | grep mysql
more /etc/group | grep mysql
#删除
userdel mysql
groupdel mysql
创建
groupadd mysql
useradd -r -g mysql mysql
4.下载安装包:https://dev.mysql.com/downloads/mysql/5.7.html
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar
5.解压安装包
tar -xvf mysql-5.7.38-linux-glibc2.12-x86_64.tar -C /db/
tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /db/
6.安装
mv mysql-5.7.38-linux-glibc2.12-x86_64/ mysql-5.7
[root@skx2 mysql-5.7]# mkdir log
[root@skx2 mysql-5.7]# cd log/
[root@skx2 log]# touch mysqld.log
chown -R mysql:mysql /db/mysql-5.7
chmod -R 755 /db/mysql-5.7
#编译并记录密码
./mysqld --initialize --user=mysql --datadir=/db/mysql-5.7/data --basedir=/db/mysql-5.7
7.编写配置文件
[mysqld]
log-error=/db/mysql-5.7/log/mysqld.log
pid-file=/db/mysql-5.7/data/mysqld.pid
datadir=/db/mysql-5.7/data
socket=/tmp/mysql.sock
port = 3306
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
symbolic-links=0
#MySQL允许最大的进程连接数
max_connections=3000
#独立表空间
innodb_file_per_table=1
#表名大小写不明感
lower_case_table_names=1
#如果只需要用Innodb的话则可以设置它高达 70-80% 的可用内存
innodb_buffer_pool_size = 2048M
#服务器有几个CPU就设置为几,建议用默认设置,一般为8.
innodb_thread_concurrency = 4
join_buffer_size = 2M
character-set-server=utf8
collation-server=utf8_general_ci
init_connect='SET NAMES utf8'
default-time-zone=timezone
default-time_zone = '+8:00'
注:
此处配置文件有补充与图片不对应
find / -name mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
8.修改mysql.server中的安装目录
/usr/local/mysql全部修改成/db/mysql5.7(共五处)
vi /db/mysql-5.7/support-files/mysql.server
# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
basedir=/db/mysql-5.7
bindir=/db/mysql-5.7/bin
if test -z "$datadir"
then
datadir=/db/mysql-5.7/data
fi
sbindir=/db/mysql-5.7/bin
libexecdir=/db/mysql-5.7/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
9.启动
#查询服务
ps -ef|grep mysql
#添加软连接
ln -s /db/mysql-5.7/support-files/mysql.server /etc/init.d/mysql
ln -s /db/mysql-5.7/bin/mysql /usr/bin/mysql
systemctl start mysql
#重启mysql服务
service mysql restart
注:如果启动错误根据提示查看日志
#端口占用检查
yum -y install net-tools
netstat -anp |grep 3306
10.修改密码,开启远程访问
mysql> set password for root@localhost = password('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set user.Host='%' where user.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.00 sec)
11.设置开机自启
cp /db/mysql-5.7/support-files/mysql.server /etc/init.d/mysqld
ls /etc/init.d/
chmod +X /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list
12.开启防火墙端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload