Linux.centos安装mysql
一:删除已有的mysql步骤
1 卸载旧的mysql
1.1 查询有哪些mysql文件
[root@zookeeper init.d]# find / -name mysql
/var/lock/subsys/mysql
/var/lib/mysql
/usr/local/soft/mysql
/usr/local/soft/mysql/mysql
/usr/local/soft/mysql/mysql/include/mysql
/usr/local/soft/mysql/mysql/bin/mysql
/usr/local/soft/mysql/mysql/data/mysql
/usr/lib64/mysql
/usr/lib64/perl5/auto/DBD/mysql
/usr/lib64/perl5/DBD/mysql
/usr/share/mysql
/usr/bin/mysql
1.2 依次删除
[root@zookeeper init.d]# rm -rf /var/lock/subsys/mysql
.....将文件依次删除
2 删除配置文件
2.1删除mysql的配置文件(my.cnf文件)
[root@zookeeper init.d]# rm -rf /etc/my.cnf
2.2删除 /etc/init.d/ 下跟mysql有关的全部文件,一般包括mysql文件或mysqld文件。
这个文件具体有 哪些mysql文件,可以自己查一下,然后删除掉,比如我的:
3. 删除mysql的用户和组
[root@ali228 ~]# userdel mysql userdel: user 'mysql' does not exis
到这里。mysql已经被删除完成,可以安装新的mysql了
二:安装步骤
准备工作:
下载安装包两种方式:(注意:先别急着操作)
方式一:官网下载:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
方式二:通过linux的wget命令
1.进入mysql的安装目录(最好自己创建)
cd /usr/local/soft/mysql
2.下载mysql的tar.gz包
( 我这里采用的是wget方式,为啥?简单啊,但是执行这个需要网速快,否则你还是老老实实的在 实体机上下载完,再传到虚拟机上吧)
3.下载完后,先找到自己下载的 mysql包
[root@ali228 mysql] ll /usr/local/soft/mysql
查看自己的安装包
然后解压
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压后的文件夹名称“mysql-5.7.24-linux-glibc2.12-x86_64” 修改为mysql( 你想的没错,是的,这时有两个mysql的文件夹)
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
4.添加用户组mysql和用户mysql,并将其添加到mysql用户组中
[root@ali228 mysql]# groupadd mysql [root@ali228 mysql]# useradd -r -g mysql mysql
注: useradd -r参数表示mysql用户是系统用户,不可用于登录系统。
useradd -g参数表示把mysql用户添加到mysql用户组中。
5.检查是否安装了 libaio
rpm -qa | grep libaio
如果没有安装,则执行:
yum search libaio
6.配置my.cnf文件
vi /etc/my.cnf
将一下内容拷贝到该文件里边
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/tmp/mysql.sock [mysqld] #skip-name-resolve #设置3306端口 port=3306 socket=/tmp/mysql.sock # 设置mysql的真正的安装目录 (看自己的是在哪里) basedir=/usr/local/soft/mysql/mysql # 设置mysql数据库的数据的存放目录 (看自己的是在哪里) datadir=/usr/local/soft/mysql/mysql/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符雿 character-set-server=utf8 # 创建新表时将使用的默认存储引擿 default-storage-engine=INNODB #lower_case_table_name=1 max_allowed_packet=16M
7.创建data文件夹(就是my.cnf中datadir 所指定的文件夹)
[root@baidu64 mysql]# pwd /usr/local/soft/mysql/mysql [root@baidu64 mysql]# mkdir data
8.将mysql目录的所属用户和组改为mysql
chown -R mysql:mysql ./
9. 初始化mysqld 生成初始化密码(注意文件地址)
[root@baidu64 mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/soft/mysql/mysql --datadir=/usr/local/soft/mysql/mysql/data
此时,输出为:
2018-10-24T04:25:13.673365Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2018-10-24T04:25:15.808961Z 0 [Warning] InnoDB: New log files created, LSN=45790 2018-10-24T04:25:16.105505Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2018-10-24T04:25:16.184776Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cec94f21-d744-11e8-a0b5-fa163ed8e403. 2018-10-24T04:25:16.188372Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2018-10-24T04:25:16.189074Z 1 [Note] A temporary password is generated for root@localhost: i;lknXwO;5,s [root@baidu64 mysql]#
将 "root@localhost:" 后边的内容记录下来,这是第一次登陆mysql需要的密码(如果没有记下来,就得重新安装一遍哦)
10.mysql配置
10.1 设置开机启动:
10.1.1 复制mysql.server脚本到资源目录,并赋予执行权限:
设置之前我们先了解点东西:(很急的话,就不用看了)
启动mysql,我们可以通过:
./support-files/mysql.server
这个来启动了,但是每次都得输出或者进去响应的文件夹,不免有些麻烦,那有什么办法?
我们来了解一下 /etc/rc.d/init.d 这个文件:这个目录存放的是一些脚本,一般是linux以rpm包安装时设定的一些服务的启动脚本。 系统在安装时装了好多rpm包,这里面就有很多对应的脚本 。
执行这些脚本可以用来启动,停止,重启这些服务。
所以当我们把我们的mysql启动脚本放在“/etc/rc.d/init.d/mysqld”文件中,就可以很方便的启动mysql了
[root@baidu64 mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysql.server
[root@baidu64 mysql]# chmod +x /etc/rc.d/init.d/mysql.server
“chmod +x /etc/rc.d/init.d/mysql.server”
设置完这个后,就可以通过:mysqld快捷启动了: service mysql.server start
10.1.2:将 mysqld 服务加入到系统服务并检测是否生效:
[root@baidu64 mysql]# chkconfig --add mysql.server
[root@baidu64 mysql]# chkconfig --list mysql.server
可以启动mysql了:
service mysql.server start
11.配置环境变量
11.1 在 /etc/profile配置文件中,添加如下内容:
首先: vi /etc/profile
然后再文件中添加内容:(不会vi操作的可以百度一下,这是基本操作)
#mysql环境变量
PATH=$PATH:/usr/local/soft/mysql/mysql/bin export PATH
11.2 执行命令,使etc/profile生效
source /etc/profile
11.3 校验是否成功:
[root@baidu64 mysql]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/env/jdk/jdk8/jdk1.8.0_171/bin:/root/bin:/home/env/jdk/jdk8/jdk1.8.0_171/bin:/usr/local/env/mysql/mysql/bin
12. 初次登录 修改访问密码(第一次的密码就是 上边我让你记得密码,可以回去看下第9步)
[root@baidu64 mysql]# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.18 Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
修改登录密码:(为 '123456')
mysql> SET PASSWORD = PASSWORD('123456'); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> update user set authentication_string=PASSWORD('123456') where User='root'; Query OK, 0 rows affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 1 mysql>
13.允许远程访问
mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql>
14.使用navicate远程连接报错
14.1关闭mysql服务
[root@baidu64 mysql]# service mysql.server stop
Redirecting to /bin/systemctl stop mysql.service
如果提示‘mysql unrecognized service’,则执行:
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql.server
然后执行:
chmod +x /etc/rc.d/init.d/mysql.server
在执行:service mysql.server start
15. 修改/etc/my.cnf修改为无密码登录
在my.cnf配置文件添加如下内容:
# mysql无密码登录 skip-grant-tables
16.重启mysql服务
[root@baidu64 mysql]# service mysql.server restart
Redirecting to /bin/systemctl restart mysql.service
17.无密码登录mysql
[root@baidu64 mysql]# mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.18 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
18.再次修改mysql密码:
mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> update mysql.user set authentication_string=password('123456') where user='root' ; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 2 Changed: 1 Warnings: 1 mysql>
19.
然后将my.cnf无密码登录配置去掉(就是上面刚加的那句话)
20.退出mysql,并重启:
mysql> quit Bye [root@baidu64 mysql]# service mysql restart Redirecting to /bin/systemctl restart mysql.service [root@baidu64 mysql]#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了