mysql二进制安装
去mysql官网下载:https://downloads.mysql.com/archives/community/
安装前环境检查
centos7默认安装数据库是mariadb
查看是否存在 mariadb,mysql,如果存在就删除掉
rpm -qa | grep mariadb
rpm -qa | grep mysql
yum remove -y mariadb mariadb-* #如果存在
yum remove -y mariadb mysql-* #如果存在
如果存在 /etc/my.cnf,删除它
rm -rf /etc/my.cnf
ldd --version 查询对应glicb库版本
uname -r 显示操作系统的发行版号
安装
下载解压MySQL二进制包
网上说tar里面没有征对xz格式的参数比如 z是针对 gzip,j是针对 bzip2。然而为什么我直接tar xvf就可以?
创建tar.xz文件:只要先 tar cvf xxx.tar xxx/ 这样创建xxx.tar文件先,然后使用 xz -z xxx.tar 来将 xxx.tar压缩成为 xxx.tar.xz
解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。
[root@localhost]# cd /usr/local
[root@localhost local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.23-linux-glibc2.17-x86_64-minimal.tar.xz
[root@localhost local]# xz -d mysql-8.0.23-linux-glibc2.17-x86_64-minimal.tar.xz
[root@localhost local]# tar xvf mysql-8.0.23-linux-glibc2.17-x86_64-minimal.tar
[root@localhost local]# mv mysql-8.0.23-linux-glibc2.17-x86_64-minimal mysql
mysql文件列表:
bin mysqld服务器,客户端和实用程序
data 日志文件,数据库
docs MySQL手册信息格式
man Unix手册页
include 包含(标题)文件
lib 库
support-files 包括各种大小配置文件模板(为毛我没有),mysql.server和mysqld_multi.server(多实例)开机启动文件。mysql-log-rotate是日志切割脚本用于日志的归档,一般用于平时分析日志时用。
share 其他支持文件,包括错误消息,各国语言包(为毛没中文),示例配置文件,用于数据库安装的SQL
3、创建用户组
检查mysql组和用户是否存在,如无创建:
[root@localhost ~]# cat /etc/group | grep mysql
[root@localhost ~]# cat /etc/passwd |grep mysql
[root@localhost ~]# useradd mysql -s /sbin/nologin -M
4、更改mysql目录下所有的目录及文件夹所属组合用户
[root@localhost ~]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql
[root@localhost local]# chmod -R 755 mysql #可选
5、添加配置文件
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql/ datadir=/usr/local/mysql/data/ log-error=/usr/local/mysql/mysqld.log port = 3306 socket=/tmp/mysql.sock #skip-grant-tables = 1 #可选,跳过密码验证 #character-set-server=utf8 #可选,默认utf8编码 #user=mysql #可选 [mysql] socket=/tmp/mysql.sock #必选,不然会报错ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
6、 配置环境变量
[root@localhost local]# echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
[root@localhost local]# source /etc/profile
[root@centos36 bin]# mysql -V
mysql Ver 8.0.23 for Linux on x86_64 (MySQL Community Server -
7、初始化数据
参数:
# mysqld:核心程序
# --initialize-insecure:初始化核心参数
# --user:管理用户
# --basedir:软件路径
# --datadir:数据存放目录
[root@localhost local]# mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
两种初始化的方式:
--initialize-insecure:不安全方式,初始化完成并启动数据库后不需要可无密码登录;
--initialize:安全方式,初始化完成之后会生成临时随机密码,不能用作管理数据库,在第一次登录数据库时时需要改掉这个密码;
8、mysql设置开机启动
[root@localhost local]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #使用systemctl管理mysqld [root@localhost local]# chkconfig --add mysqld [root@localhost local]# systemctl start mysqld
9、检查并登录
[root@localhost local]# netstat -lntup|grep 3306
[root@localhost local]# ps -ef |grep mysql
[root@localhost local]# cat /usr/local/mysql/mysqld.log |grep 'password' #获取密码 在配置文件中查看errorlog路径
[root@localhost local]# mysql -uroot -p'nk%D4am*dV;o'