- 1.yum安装: #关闭selinux: setenforce 0 getenforce sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' cat /etc/selinux/config 2.卸载mariadb依赖包 rpm -qa|grep mariadb yum -y remove mariadb-libs 3.下载mysql安装源 在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/ 或者wget下载 wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm rpm -ivh mysql80-community-release-el7-11.noarch.rpm 4.查看安装的mysql源 rpm -ql mysql80-community-release /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql/etc/yum.repos.d /mysql-community-source.repo/etc/yum.repos.d /mysql-community.repo 5.开始安装mysql yum install mysql-community-server -y 6.启动mysql服务,并检查启动状态 mysqld --initialize-insecure --user=mysql systemctl start mysqld netstat -tunlp|grep 330 tcp6 0 0 :::33060 :::* LISTEN 3267 /mysqld tcp6 0 0 :::3306 :::* LISTEN 3267 /mysqld 7.登录测试 #mysql
mysql> ——进入交互界面证明成功登录
- 2.二进制安装 MySQL软件rpm包获取 官方: https://downloads.mysql.com/archives/community/ 国内镜像: https://mirrors.aliyun.com/mysql/ https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz 2.安装MySQL前软件环境准备 #1)查看系统环境 cat /etc/redhat-release #<==操作系统版本。 CentOS Linux release 7.9.2009 (Core) #2)关闭selinux: setenforce 0 getenforce sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config #3)卸载mariadb依赖包 yum remove mariadb-libs -y #<==卸载系统已经安装的mariadb依赖包。 #4)安装相关依赖包 yum install ncurses ncurses-devel libaio-devel openssl openssl-devel -y #5)关闭防火墙 systemctl stop firewalld systemctl disable firewalld 3.开始安装MySQL (1)创建MySQL用户账号 首先以root身份登录到Linux系统中,然后执行如下命令创建mysql用户账号: useradd mysql -s /sbin/nologin -M #<==创建mysql用户。 (2)下载、解压mysql软件包,并做好软链接mysql到/usr/local。 cd /opt wget https://mirrors.aliyun.com/mysql/MySQL-8.0/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz ln -s /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql 或 mv /opt/mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql ls -l /usr/local/mysql 3)创建MySQL数据目录、配置文件(/etc/my.cnf)并授权 #1)增加简易配置文件, cat>/etc/my.cnf<<'EOF' [mysqld] user=mysql basedir=/usr/local/mysql datadir=/data/3306/data port=3306 socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock EOF
- 授权 chown mysql.mysql /etc/my.cnf #2)创建MySQL数据目录并授权 mkdir -p /data/3306/data chown -R mysql.mysql /data 配置PATH环境变量,并初始化MySQL数据库 #1) 配置PATH环境变量 echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile /etc/profile echo $PATH #2)初始化MySQL数据库 /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data 注:5.7之前和之后初始化命令不同: /usr/local/mysql/scripts/mysql_install_db #5.7之前 /usr/local/mysql/bin/mysqld #5.7和8.0初始化 初始化密码也参数不同: --initialize: 会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改. --initialize-insecure:管理员密码为空. 配置并启动MySQL数据库 1.设置MySQL启动脚本 cd /usr/local/mysql/support-files/ cp mysql.server /etc/init.d/mysqld #<==拷贝mysql启动脚本到启动路径。 systemctl enable mysqld #<==设置开机自启动命令 2.启动MySQL数据库 systemctl start mysqld 3.检查MySQL数据库是否启动。 netstat -tunlp|grep 330 4.登录MySQL测试 执行登录命令如下: [root@lou ~]# mysql -uroot -P3306 -hlocalhost -p Enter password:输入密码
-u 用户, -p 密码, -S socket #多实例, -P 端口, -h 主机, -e 非交互操作mysql
注:(密码最好在交互模式选输入,否则history会看到密码)
5.退出MySQL数据库
1、quit (\q) Quit mysql.
2、exit (\q) Exit mysql. Same as quit.
3、快捷键Ctrl+d。
- 3.常见故障分析及解决方案
- 初始化报错libaio mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 原因:缺少libaio-devel依赖包 解决:yum install libaio-devel -y 如果不知道包名,可以执行 yum provides libaio -y查.
- 初始化报错数据文件目录不为空 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting. [ERROR] [MY-013236] [Server] The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it. 解决:rm -rf /data/3306/data/*
- 启动后初始无法登录 [root@lou ~]# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 原因:此问题一般都是数据库初始化问题或者数据库文件损坏以及目录权限问题。 解决办法:删除初始化目录,然后重新初始化数据库,剩余过程不变。 rm -rf /data/3306/data/* mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data Access denied问题原因: 1.数据库初始化问题 2.目录权限问题 3.系统数据库文件损坏 4.用户密码不对 5.授权的主机范围不对. 3.1.1 MySQL启动与关闭方式