Linux下MySQL的tar及rpm安装-刘宇
作者:刘宇
CSDN博客地址:https://blog.csdn.net/liuyu973971883
有部分资料参考,如有侵权,请联系删除。如有不正确的地方,烦请指正,谢谢。
一、tar包安装
1、为数据库创建软件目录以及数据存放目录
#mysql软件目录
mkdir /software/
2、上传mysql的tar包文件到/software/软件安装目录下并解压:
cd /software/
#解压
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
#重命名文件
mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql-5.7.17
#创建mysql数据文件目录
mkdir ./mysql-5.7.17/data
4、创建mysql的用户组和用户
#创建用户组
groupadd mysql
#创建用户并添加到用户组中
useradd -r -g mysql mysql
5、修改mysql文件夹的用户组和用户权限
chown -R mysql:mysql /software/mysql-5.7.17/
6、更改mysql安装文件夹mysql-5.7.17/的权限
chmod -R 755 /software/mysql-5.7.17/
7、检查是否缺少libaio依赖包。
#查询是否安装libaio依赖包
yum search libaio
#如果没安装,可以用下面命令安装
yum install libaio
8、对mysql进行初始化
cd /software/mysql-5.7.17/bin
./mysqld --initialize --user=mysql --basedir=/software/mysql-5.7.17 --datadir=/software/mysql-5.7.17/data
- 错误解决:error while loading shared libraries: libnuma.so.1: cannot open shared object
#主要是因为libnuma安装了32位的,我们安装一个64位即可。
yum install numactl.x86_64
- 安装成功后即可要复制临时密码
[Note] A temporary password is generated for root@localhost: !dyys)ll!8_N
- 忘记复制临时密码,输入如下命令即可获得临时密码
grep 'password' /var/log/mysqld.log
9、启动mysql服务
sh /software/mysql-5.7.17/support-files/mysql.server start
- 我们发现会出现如下错误,修改mysql配置文件即可:
./support-files/mysql.server: line 239: my_print_defaults: command not found
./support-files/mysql.server: line 259: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
10、修改mysql.server配置文件
- 修改配置文件
vim /software/mysql-5.7.17/support-files/mysql.server
- 将几个路径修改成我们指定的目录即可
if test -z "$basedir"
then
basedir=/software/mysql-5.7.17
bindir=/software/mysql-5.7.17/bin
if test -z "$datadir"
then
datadir=/software/mysql-5.7.17/data
fi
sbindir=/software/mysql-5.7.17/bin
libexecdir=/software/mysql-5.7.17/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi
11、将mysql.server文件拷贝到/etc/init.d/目录下
cp /software/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld
#赋予权限
chmod 755 /etc/init.d/mysqld
12、编辑my.cnf文件
- 编辑文件
vi /etc/my.cnf
- 修改文件
[client]
port=3306
default-character-set=utf8
socket =/software/mysql-5.7.17/tmp/mysql.sock
[mysqld]
port=3306
character-set-server=utf8
basedir=/software/mysql-5.7.17
datadir=/software/mysql-5.7.17/data
pid-file=/software/mysql-5.7.17/tmp/mysqld.pid
log-error=/software/mysql-5.7.17/log/mysql.err
socket = /software/mysql-5.7.17/tmp/mysql.sock
# Server Id.
server-id=1
- 在mysql目录中创建tmp和log文件夹
mkdir /software/mysql-5.7.17/tmp
mkdir /software/mysql-5.7.17/log
#赋予权限777,否则后面用root用户启动失败
chmod 777 /software/mysql-5.7.17/tmp
chmod 777 /software/mysql-5.7.17/log
13、启动mysql
启动
/etc/init.d/mysqld start
报错解决1
- 如果报如下错误,是因为mysql安全启动只认/usr/local/mysql这个路径
Starting MySQL.Logging to '/software/mysql-5.7.17/log/mysql.err'.
2020-08-04T03:25:34.828670Z mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information
ERROR! The server quit without updating PID file (/software/mysql-5.7.17/mysqld.pid).
- 解决方法:
#将所有的/usr/local/mysql改为/software/mysql-5.7.17
#如果嫌麻烦可以传到windows上进行一键替换
vim /software/mysql-5.7.17/bin/mysqld_safe
报错解决2
- 如果报如下错误,是因为当前root用户没有权限写入文件,需要切换到mysql用户启动mysql,然后关闭。随后即可使用root用户启动了
Starting MySQL.2020-08-04T03:29:34.828670Z mysqld_safe error: log-error set to '/software/mysql-5.7.17/log/mysql.err', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/software/mysql-5.7.17/tmp/mysqld.pid).
13、使用临时密码登录
/etc/init.d/mysql -uroot -p
#输入密码
13、修改密码
#修改密码复杂度,如果提示没有则跳过即可
set global validate_password_policy=0;
set global validate_password_length=1;
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
14、修改远程访问权限
#修改权限
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
#刷入权限
flush privileges;
二、利用rpm的yum源安装
1、下载源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
2、安装mysql源镜像
yum localinstall mysql57-community-release-el7-8.noarch.rpm
3、检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
4、修改vim /etc/yum.repos.d/mysql-community.repo源。
- 比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。
5、安装MySQL
yum install mysql-community-server
6、启动MySQL服务
systemctl start mysqld
7、忘记临时密码
grep 'password' /var/log/mysqld.log
8、使用临时密码登录
/etc/init.d/mysql -uroot -p
#输入密码
9、修改密码
#修改密码复杂度,如果提示没有则跳过即可
set global validate_password_policy=0;
set global validate_password_length=1;
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
10、修改远程访问权限
#修改权限
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
#刷入权限
flush privileges;
三、mysql基础设置
3.1、目录解析
参数 | 路径 | 解释 | 备注 |
---|---|---|---|
--basedir | /usr/bin | 相关命令目录 | mysqladmin mysqldump等命令 |
--datadir | /var/lib/mysql/ | mysql数据库文件的存放路径 | |
--plugin-dir | /usr/lib64/mysql/plugin | mysql插件存放路径 | |
--log-error | /var/lib/mysql/jack.atguigu.err | mysql错误日志路径 | |
--pid-file | /var/run/mysqld/mysqld.pid | 进程pid文件 | |
--socket | /var/lib/mysql/mysql.sock | 本地连接时用的unix套接字文件 | |
/usr/share/mysql | 配置文件目录 | mysql脚本及配置文件 | |
/etc/init.d/mysql | 服务启停相关脚本 |
3.2、修改数据库字符集
- 修改字符集配置
#1.编辑配置文件
vim /etc/my.cnf
#2.在[mysqld]下方添加如下设置
character_set_server=utf-8
#3.重启mysql服务
systemctl restart mysqld
- 修改已生成的库字符集
alter database mytest character set 'utf8';
- 修改数据表的字符集
alter table user convert to character set 'utf8';