Linux Centos7.8 安装 Mysql8.0.33

1.下载MySQL安装包

-p为下载到指定目录

wget -p /usr/local/secretCloud/soft https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz

如果下载太慢,可以先下载到本地,然后上传到服务器,下载地址:

https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz

2.解压压缩包至自己指定的目录下

进入存放mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz文件的目录,解压文件到指定目录

tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local/secretCloud/soft


    
3.重命名 mysql-8.0.33-linux-glibc2.12-x86_64文件夹

还是在解压文件目录中,重命名文件

mv mysql-8.0.33-linux-glibc2.12-x86_64 mysql8.0.33


    
创建数据存放目录

mkdir /usr/local/secretCloud/soft/mysql8.0.33/data

创建成功后,mkdir /usr/local/secretCloud/soft/mysql8.0.33下会出现data目录,以后我们创建的数据库等等,都会出现在这里

4.配置环境变量

使用vim命令打开环境变量配置文件(如果提示【-bash: vim: 未找到命令】则先安装vim: sudo yum install vim)


编辑vim /etc/profile文件

vim /etc/profile

(1)按PageDown键,将光标移动到文件最后端键入下面两行内容。
(2) 按i键进入编辑文档模式。即可输入内容。
(3)这里我的mysql目录是这个,如果改了安装目录替换成自己的安装目录即可。

(4)先按ESC键,在按I键,进入编辑模式,先按ESC键,在输入:wq保存退出)

export PATH=$PATH:/usr/local/secretCloud/soft/mysql8.0.33/bin

(5)然后使用source命令重新加载此配置文件使配置生效。
      

 source /etc/profile

4.创建用户组和密码

(1)创建用户
groupadd mysql

    
(2)创建用户组
useradd -g mysql mysql

    
(3)授权
chown -R mysql.mysql /usr/local/secretCloud/soft/mysql8.0.33


5.初始化数据库

注意:此处最好使用忽略表名大小写,千万不要使用区分大小写,mysql8以后不支持修改此配置,只能选择重新初始化mysql,要命!!!

如果有要求一定要区分,也可以使用,主要看自己需求,这里我选择忽略表名大小写。

(1)进入bin目录,初始化mysql
cd /usr/local/secretCloud/soft/mysql8.0.33/bin
 # 不忽略表名大小写
./mysqld --user=mysql --basedir=/usr/local/secretCloud/soft/mysql8.0.33 --datadir=/usr/local/secretCloud/soft/mysql8.0.33/data/ --initialize
# 忽略表名大小写
./mysqld --user=mysql --lower-case-table-names=1 --basedir=/usr/local/secretCloud/soft/mysql8.0.33 --datadir=/usr/local/secretCloud/soft/mysql8.0.33/data/ --initialize

此时生成一个roor账号的临时密码,记录这个密码,后面会用到,这里我马赛克了

(2)进入数据库中的support-files目录
 cd /usr/local/secretCloud/soft/mysql8.0.33/support-files/

使用mysql.server start 命令启动mysql服务

./mysql.server start

遇到了报错【./mysql.server:行239: my_print_defaults: 未找到命令
./mysql.server: 第 259 行:cd: /usr/local/mysql: 没有那个文件或目录
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)

解决方法:将mysql.server文件中/usr/local/mysql 类型的所有路径,改为mysql实际安装路径,一共5处,不要改漏掉了

重新启动mysql服务

./mysql.server start

遇到了报错【Starting MySQL.2024-09-13T06:39:43.658959Z 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 (/var/lib/mysql/lzsys.com.pid).

解决方法:
(1)编辑文件vim /usr/local/secretCloud/soft/mysql8.0.33/support-files/mysql.server

vim /usr/local/secretCloud/soft/mysql8.0.33/support-files/mysql.server

(2)在vim中 set nu打开行号显示

 :set nu

 # 找到

$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
      wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
 

我的是在266行的位置,这句命令会使用mysqld_safe来启动mysql服务,但如果使用root账号使用这个服务需要增加一个启动用户的参数。我们这里正巧使用的是root账号登录,所以对他进行如下修改。

a.使用i键进入输入模式,在$bindir/mysqld_safe 后方,--datadir="$datadir"前方增加 --user=root这个参数如:$bindir/mysqld_safe --user=root --datadir="$datadir"
b.修改好后按ESC键退出编辑模式,输入两个大写的Z字母退出并保存。
c.然后我们再次启动服务。这次我们可以看到启动成功。

./mysql.server start

(3)修改/etc/my.cnf文件中的路径

替换前:

替换后:将mysqld下的basedir、datadir、socket,mysqld_safe下的log-error、pid-file路径都改为mysql的安装路径(替换自己的安装路径即可)

再次启动服务

./mysql.server start

mysql服务启动成功!

6.使用初始化的账号密码进行登录

mysql -u root -p

输入上面初始化的时候,生成的默认密码,密码输入正确后会看到以下信息,输入密码后如果提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
需要给/tmp/mysql.sock做个软链接


 要进入/tmp目录执行

# 进入tmp目录
cd /tmp
# 给/tmp/mysql.sock做个软链接
ln -s /usr/local/secretCloud/soft/mysql8.0.33/mysql.sock mysql.sock

此时就可以成功启动了

修改mysql的随机密码,将password替换成自己的密码

alter user 'root'@'localhost' identified by 'password';

语法没问题就可以看见 Query OK, 0 rows affected (0.01 sec)。


这时我们使用exit命令退出数据库并重新使用新密码链接。发现已经可以正常使用。

7.允许远程连接

(1)登录mysql

mysql -u root -p

(2)选择MySQL数据库

 mysql> use mysql;

 (3)特定用户的host 修改

mysql> update user set host='%' where user='root';

(4)修改/etc/my.cnf ,添加

# 允许外部连接
bind-address = 0.0.0.0


此时如果外部访问失败,检查防火墙是否允许3306端口访问    

firewall-cmd --zone=public --query-port=3306/tcp

防火墙未添加允许3306访问,添加即可

# 开放3306端口访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重新载入一下防火墙设置,使设置生效
firewall-cmd --reload

此时测试连接成功!

8.设置开机自启动

(1)将mysql.server 文件复制到 /etc/init.d,并重命名为mysqld
停止mysql服务

mysqladmin -uroot -p -P3306 -h127.0.0.1 shutdown

停止失败提示


(2)运行查看mysql服务状态命令 (报错env: /etc/init.d/mysqld: 权限不够)

service mysqld status


        
(3)赋予权限

chmod a+wrx /etc/init.d/mysqld

再次执行mysql命令,大功告成!!!

service mysqld start

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值