PS: 记录一下CentOS7安装配置Mysql过程
文章目录
查看CentOS7的版本信息:
cat /etc/centos-release
环境介绍
- CentOS7
- MySQL8.0.30
1.卸载MariaDB
- 在CentOS中默认安装有MariaDB,是MySQL的一个分支,主要由开源社区维护。
- CentOS 7及以上版本已经不再使用MySQL数据库,而是使用MariaDB数据库。
- 如果直接安装MySQL,会和MariaDB的文件冲突。
- 因此,需要先卸载自带的MariaDB,再安装MySQL。
1.1查看是否安装
rpm -qa|grep mariadb
1.2卸载
rpm -e --nodeps 文件名
1.3检查是否卸干净
rpm -qa|grep mariadb
2检查依赖
2.1查看是否安装libaio
rpm -qa|grep libaio
yum -y install libaio
2.2检查是否安装numactl
rpm -qa|grep numactl
yum -y install numactl
3.安装MySQL
3.1下载资包
-
.tar
- .tar 是一种打包格式,用于将多个文件或目录组合成一个单独的文件。
- .tar 不进行压缩,只是将文件或目录打包成一个单一文件,以方便传输或存储。
tar -cvf archive.tar ./shangc.sh /etc
-
.tar.gz
- .tar.gz 是一种同时使用了打包(tar)和压缩(gzip)的格式。
- 先使用 tar 命令将文件或目录打包成一个 .tar 文件,然后使用 gzip 压缩这个 .tar 文件,生成一个 .tar.gz 文件。
- 由于使用了 gzip 压缩,.tar.gz 文件通常比单纯的 .tar 文件更小,占用更少的磁盘空间。
tar -cvf archive.tar.gz ./shangc.sh /etc # 将当前路径下的shangc.sh文件和根目录下的etc目录打包并压缩为名为archive.tar.gz的压缩包(此时有压缩的效果)
-
wget下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-el7-x86_64.tar.gz
3.2解压
- 安装包上传到了 /usr/local/ 目录
3.2.1进入安装包目录
cd /usr/local/
3.2.2解压文件
- tar.gz
tar -zxvf mysql-8.0.30-el7-x86_64.tar.gz
rm -rf mysql-8.0.30-el7-x86_64.tar.gz
- tar
tar -xvf mysql-8.0.30-el7-x86_64.tar
rm -rf mysql-8.0.30-el7-x86_64.tar
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
3.3重命名
- 将解压后的文件夹重命名为mysql
mv mysql-8.0.30-el7-x86_64/ mysql
3.4创建存储数据文件
- 在重命名后的mysql文件夹中创建data文件夹
mkdir mysql/data
3.5设置用户组并赋权
3.5.1创建用户组
groupadd mysql
3.5.2创建用户
- -r:创建系统用户
- -g:指定用户组
useradd -r -g mysql mysql
3.5.3更改属主和数组
chown -R mysql:mysql /usr/local/develop/mysql/
3.5.4更改权限
chmod -R 755 /usr/local/develop/mysql/
3.6初始化MySQL
3.6.1进入MySQL的bin目录
cd /usr/local/develop/mysql/bin
3.6.2初始化
./mysqld --initialize --user=mysql --datadir=/usr/local/develop/mysql/data --basedir=/usr/local/develop/mysql
- 临时随机密码:lr,&Phy.Z9x.
3.7配置参数文件
3.7.1打开配置文件
vim /etc/my.cnf
3.7.2添加配置
[client]
port = 3306
socket = /usr/local/develop/mysql/data/mysql.sock
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect = 'SET NAMES utf8mb4'
port = 3306
socket = /usr/local/develop/mysql/data/mysql.sock
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
datadir = /usr/local/develop/mysql/data
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
-
lower_case_table_names
-
如果要设置lower_case_table_names可以在初始化里面设置
./mysqld --initialize --user=mysql --datadir=/usr/local/develop/mysql/data --basedir=/usr/local/develop/mysql --lower_case_table_names=1
-
3.7.3修改权限
chmod 644 /etc/my.cnf
3.7.4修改mysql.server
vim /usr/local/develop/mysql/support-files/mysql.server
basedir=/usr/local/develop/mysql
datadir=/usr/local/develop/mysql/data
3.8启动MySQL
/usr/local/develop/mysql/support-files/mysql.server start
- 报错
-
解决
可能进程里已经存在mysql进程 解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
ps -ef|grep mysqld kill -9 进程号
3.9 设置软连接或环境变量
3.9.1添加PATH变量
-
添加PATH变量后,可在全局使用MySQL。
-
有两种添加方式
-
export命令临时生效
export PATH=$PATH:/usr/local/develop/mysql/bin
-
修改配置文件用久生效
- 打开文件
vim /etc/profile
- 添加内容
export PATH=$PATH:/usr/local/develop/mysql/bin
- 更新配置文件
source /etc/profile
-
3.9.2设置软连接,重启MySQL
ln -s /usr/local/develop/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/develop/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/develop/mysql/mysql.sock /var/mysql.sock
service mysql restart
3.10登录并修改密码
3.10.1登录
mysql -uroot -p
Enter password: 输入初始化随机密码 # 输入不会显示密码
3.10.2修改密码
alter user 'root'@'localhost' identified by '740740';
或者
set password for root@localhost = '740740';
3.11开远程连接
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges; //刷新权限
3.12连接工具测试连接MySQL
- 如果服务器本地可以连接,但是连接工具远程连接不进去
- 检查一下防火墙是否放行3306端口,也可以暂时先关闭防火墙后重试。
关闭防火墙
systemctl stop firewalld
3.13MySQL启动和停止
-
-
查看文件位置
find / -name mysql.sock
- 修改my.cnf中配置的路径,保证两者相同
-
3.13.1启动
service mysql start
3.13.2停止
service mysql stop
3.13.3重启
service mysql restart
3.13.4查看状态
service mysql status
4.设置开机自启动
4.1.服务文件
- 将服务文件拷贝到 /etc/init.d下,并重命名为mysqld
cp /usr/local/develop/mysql/support-files/mysql.server /etc/init.d/mysqld
4.2赋予可执行权限
chmod +x /etc/init.d/mysqld
4.3添加服务
chkconfig --add mysqld
4.4显示服务列表
chkconfig --list
注:如果看到mysqld的服务,并且3,4,5都是on的话则成功,如果是off,则执行
chkconfig --level 345 mysqld on
4.5重启系统
reboot
4.6查看自启动
- 重启后查看mysql是否开机自启动
ps -ef|grep mysql