我是靠谱客的博主 称心长颈鹿,最近开发中收集的这篇文章主要介绍Linux下安装MySQL数据库,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

此安装参考自官方教程

前置准备

  1. 下载地址:https://dev.mysql.com/downloads/mysql/
    MySQL下载地址
  2. 安装所需依赖
yum install -y libaio
  1. 检查系统是否安装mysql/mariadb
rpm -qa | grep mysql

如果有,则卸载

rpm -e --nodeps $(rpm -qa | grep mysql)
rpm -qa | grep mariadb

如果有,则卸载

rpm -e --nodeps $(rpm -qa | grep mariadb)
  1. 关闭防火墙
systemctl disable --now firewalld

安装步骤

  1. 将安装包上传至Linux目录/usr/local下
  2. 创建mysql用户及用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
  1. 进入/usr/local
cd /usr/local
  1. 解压
tar zxvf /usr/local/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
  1. 移至/usr/local/mysql
mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql
  1. 配置MySQL环境变量
cat <<EOF>> /etc/profile 
export PATH=$PATH:/usr/local/mysql/bin
EOF
source /etc/profile
  1. 创建数据存放的目录并且授权750
mkdir -p /data/mysql
chown mysql:mysql /data/mysql/
chmod 750 /data/mysql/
  1. 初始化数据库
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/

初始化成功后会显示
MySQL初始化成功
标记部分是MySQL root用户的初始密码

  1. 配置my.cnf配置文件
cat <<EOF>/etc/my.cnf
[mysqld]
default-time-zone = '+08:00'
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'
lower_case_table_names = 1

user=mysql 
port = 3306
server_id = 1
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

#####性能配置BEGIN################
#expire_logs_days=7
#back_log=300
#max_connections=5000
#max_connect_errors=30
#table_cache=4096
#open_files_limit=10240
#thread_concurrency=64
#max_allowed_packet=100000000
#net_buffer_length=100000
#interactive_timeout=300
#wait_timeout=300
#thread_cache_size=100
#slow_query_log=1
#long_query_time=5
#sort_buffer_size=2M
#read_buffer_size=2M
#read_rnd_buffer_size=250K
#join_buffer_size=250K
#tmp_table_size=64M
#table_open_cache=5000
#key_buffer_size=32M
#query_cache_size=64M
#thread_stack=250K
#innodb_buffer_pool_size=12G
#innodb_additional_mem_pool_size=16M
#innodb_file_io_threads=4
#innodb_thread_concurrency=16
#innodb_log_buffer_size=8M
#innodb_log_file_size=512M
#innodb_log_files_in_group=3
#innodb_lock_wait_timeout=120
#####性能配置END################

[mysql]
default-character-set=utf8mb4
EOF
  1. 启动MySQL服务
/usr/local/mysql/support-files/mysql.server start
  1. 设置开机启动MySQL(可选)

配置mysqld.service文件

cat <<EOF>>/usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld
Documentation=/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
systemctl enable --now mysqld
  1. 修改MySQL root密码(可选)

不建议使用mysqladmin 命令修改,如果密码存在特殊的符号会导致命令不生效;
错误提示

建议使用以下方式修改MySQL密码:

# 使用初始化得到的密码登录MySQL
$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 2
Server version: 5.7.36

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

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> set password for root@localhost = password('新密码');
Query OK, 0 rows affected, 1 warning (0.00 sec)

  1. 设置允许MySQL远程登陆(可选)

授权所有IP都可以远程登陆root用户

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root密码' WITH GRANT OPTION;

刷新数据库权限

FLUSH PRIVILEGES;

自此MySQL安装完成!

Issue

  • mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
    问题原因:缺少依赖
    解决办法:
yum -y install numactl

最后

以上就是称心长颈鹿为你收集整理的Linux下安装MySQL数据库的全部内容,希望文章能够帮你解决Linux下安装MySQL数据库所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(63)

评论列表共有 0 条评论

立即
投稿
返回
顶部