Linux-CentOS7 安装 MYSQL8.0 并配置系统服务

  • Post author:
  • Post category:linux


一、下载

CentOS 7及以上需要先卸载自带的MariaDB

# 查看mariadb

rpm -qa|grep mariadb

# 卸载mariadb(替换名称)

rpm -e –nodeps mariadb-libs-5.5.68-1.el7.x86_64

# 复查mariadb

rpm -qa|grep mariadb

下载安装,官网下载 mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 或者 wget

# 下载解压

cd /usr/local

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz


# 解压

tar -Jxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz


# 重命名

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql


# 环境变量

vim /etc/profile

# 添加以下内容

MYSQL_HOME=/usr/local/mysql

PATH=$PATH:$MYSQL_HOME/bin

export MYSQL_HOME PATH


# 环境变量生效

source /etc/profile

# 创建一个用户组:mysql

groupadd mysql

# 创建一个系统用户:mysql,指定用户组为mysql

useradd -r -g mysql mysql

# 创建目录

mkdir -p /usr/local/mysql/datas

# 授权:

# 更改属主和数组

chown -R mysql:mysql /usr/local/mysql/datas

# 更改模式

chmod -R 750 /usr/local/mysql/datas

二、配置

在/usr/local/mysql/下,创建my.cnf配置文件,用于初始化MySQL数据库

[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port       = 3306
socket     = /tmp/mysql.sock

[mysqld]
port       = 3306
server-id  = 3306
user       = mysql
socket     = /tmp/mysql.sock
# 安装目录
basedir    = /usr/local/mysql
# 数据存放目录
datadir    = /usr/local/mysql/datas/mysql
log-bin    = /usr/local/mysql/datas/mysql/mysql-bin
innodb_data_home_dir      =/usr/local/mysql/datas/mysql
innodb_log_group_home_dir =/usr/local/mysql/datas/mysql
#日志及进程数据的存放目录
log-error =/usr/local/mysql/datas/mysql/mysql.log
pid-file  =/usr/local/mysql/datas/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
 
 ##################以上要修改的########################
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 16M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
 
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
   
binlog_format=mixed
    
binlog_expire_logs_seconds =864000
    
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
      
[mysqldump]
quick
max_allowed_packet = 16M
       
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
        
[mysqlhotcopy]
interactive-timeout

三、初始化

# 安装libaio

yum install -y libaio

# 初始化

mysqld –defaults-file=/usr/local/mysql/my.cnf –basedir=/usr/local/mysql/ –datadir=/usr/local/mysql/datas/mysql –user=mysql –initialize-insecure

# 启动

mysqld_safe –defaults-file=/usr/local/mysql/my.cnf &

# 查看进程

ps -ef | grep mysqld

# 无密码登录

/usr/local/mysql/bin/mysql -u root –skip-password

# 修改密码

ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘root’;

# 刷新权限

FLUSH PRIVILEGES;

# 设置访问权限

mysql> use mysql

mysql> update user set user.Host=’%’where user.User=’root’;

mysql> flush privileges;

mysql> quit

# 打开防火墙/安全组的端口号

# Navicat连接测试

# 正常关闭

mysqladmin -h127.0.0.1 -uroot -p shutdown

注意:

用mysqld_safe起的mysql是守护进程,直接kill它会检测到数据库非正常关闭,会自动尝试起数据库。你可以选择先kill掉mysqld_safe的进程然后再kill mysql;或者使用这个命令:kill -9 `ps -ef | grep ‘mysqld’ | grep -v grep|awk ‘{print $2}’`

当然,最好还是用mysqladmin -h127.0.0.1 -uroot -p shutdown来正常关闭mysql。

四、配置服务

# 尝试启动服务

service mysql start

# Redirecting to /bin/systemctl start mysql.service

# Failed to start mysql.service: Unit not found.

# 无法启动,原因是未配置.server文件到/etc/init.d/ 目录下,mysql.server一般在你安装的mysql目录下,自己是编译安装,所以知道目录在哪里,不知道的这样看一下

#执行复制操作,/usr/local/mysql/是我自己的mysql安装目录,大家根据查询出来的结果复制

# 查询mysql.server

find / -name mysql.server

# /usr/local/mysql/support-files/mysql.server

# 复制.server文件

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

五、服务命令

# 启动

service mysql start

# 停止

service mysql stop

# 重启

service mysql restart



版权声明:本文为boss_2012原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。