CentOS7安装Mysql

linux下mysql的安装

安装前准备

1. 系统:CentOS7

2. 准备工作

  • 1)检查是否已经安装过mysql,执行命令
 rpm -qa | grep mysql #检查是否已经安装过mysql

 rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64 #如果上述命令查出有历史版本,则删除该版本(查出来的版本);没查出则不用管

 rpm -qa | grep mysql #再次查看删除成功没
  • 2)查询所有Mysql对应的文件夹
whereis mysql或者find / -name mysql

rm -rf xxx #删除上述步骤查出的mysql文件目录

whereis mysql或者find / -name mysql #验证删除完成没
  • 3)检查mysql用户组和用户是否存在,如果没有,则创建
cat /etc/group | grep mysql

cat /etc/passwd |grep mysql

groupadd mysql

useradd -r -g mysql mysql
  • 4)从官网下载是用于Linux的Mysql安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz #版本可以自己选择

# mysql8.x
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz

安装Mysql

1. 开始安装

  • 1)解压
tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql #解压完成后的mysql目录移动到/usr/local/目录下,更名为mysql
  • 2)在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data
  • 3)更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
  • 4)编译安装并初始化mysql,初始化成功会显示一个临时密码,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
  • ps:第4步可能出现以下错误

① 缺少libaio包

② 缺少numa包

解决办法

yum install  libaio-devel.x86_64

yum -y install numactl
  • 5)解决后,重新执行第4步的命令,成功会显示一个临时密码,务必记住初始化输出日志末尾的密码
  • 6)编辑配置文件my.cnf,添加配置如下
vi /etc/my.cnf

# 注意:默认的mysqld删除了就是

[mysqld]
# data目录
datadir=/usr/local/mysql/data
# 临时文件目录(不指定的话默认放/tmp,可能存在权限之类的问题,最好手动指定)
tmpdir=/usr/local/mysql/data/tmp
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1
#mysql默认字符集是latin1,这儿设置为utf8
character-set-server=utf8
init_connect='SET NAMES utf8
  • 7)启动mysql服务器
/usr/local/mysql/support-files/mysql.server start #显示成功则ok

ps:第7步可能出现如下错误

启动报错1:

Starting MySQL... ERROR! The server quit without updating PID file

解决:查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令

#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld

#结束进程
kill -9 PID

#启动服务
 /usr/local/mysql/support-files/mysql.server start

启动报错2:

Starting MySQL.2020-06-13T08:58:42.642451Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/hadoop1.pid).

原因:没有路径也没有权限

解决方案:

1 创建路径:mkdir /var/log/mariadb
2 创建文件:touch /var/log/mariadb/mariadb.log
3 授予权限:chown -R mysql:mysql /var/log/mariadb/mariadb.log


或者
vim /etc/my.cnf

[mysqld_safe]
log-error=/usr/local/mysql/log/mysql.log
pid-file=/usr/local/mysql/log/mysql.pid

        启动报错3:

      原因:tmp目录没有给mysql用户权限

      解决方案:mysql tmp目录没权限解决

chown -R 777 /tmp

     最好在安装时候就指定临时目录,查看如下命令:show variables like '%dir%' ;

 

 

 

  • 8)添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
  • 9)登录mysql,修改密码(密码为步骤4生成的临时密码)
[root@localhost /]#  mysql -u root -p
Enter password:


mysql>set password for root@localhost = password('yourpass');

第9步可能报错:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'password('yourpass')' at line 1

 

解决方案:因为你装的版本比较不是5.x的,比如是mysql8.x的,修改密码语句不一样,mysql8.x可以用下面的语句:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpwd';

 

  • 10)开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
  • 11)设置开机自动启动
1、将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list
  • 12)重启mysql
systemctl restart mysqld #CentOS7的命令是这样的

mysql -uroot -p # 登录

mysql>status; #查看默认编码是否改为了utf8
或者
mysql>show variables like '%character%';  #查看默认编码是否改为了utf8

在使用Navicat远程连接一波mysql

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值