Linux 标准版安装mysql8 源码版

490 阅读2分钟

一、前提

凝思的操作系统版本:

root@linx:/var/lib/mysql-files# cat /etc/issue
Linx 6.0.80 2019-11-26 \n \l

1、卸载mysql

找出所有mysql目录,以及删除一些配置文件。

find / -name mysql

rm -rf /etc/my.cnf 2、安装选型

linux 标准版

二、安装步骤

1、解压文件重命名

oot@linx:/opt/package# ls
jdk-8u251-linux-x64.tar.gz  mysql-8.0.22-linux-glibc2.12-x86_64.tar  nginx-1.18.0.tar.gz  node-v14.15.0-linux-x64.tar.xz  redis-6.0.8.tar.gz
root@linx:/opt/package# tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar -C /opt/sofeware/

root@linx:/opt/sofeware# mv mysql-8.0.22-linux-glibc2.12-x86_64/ mysql8

2、创建mysql组合mysql(如果有跳过)

groupadd mysql
useradd -r -g mysql mysql

3、创建data文件夹存放数据,然后把整个mysql文件授权给mysql用户

root@linx:/opt/sofeware/mysql8# mkdir data
root@linx:/opt/sofeware/mysql8# chown -R mysql:mysql ./

4、初始化mysql

此时会生成一个初始化密码,记录下来,后面要用。如果没用显示密码,则去你配置的日志文件里面查看,里面会有。

bin/mysqld --initialize --user=mysql --basedir=/opt/software/mysql8 --datadir=/opt/software/mysql8/data

5、设置my.cnf配置文件

并配置权限。

6、my.cnf

[client]
port=3306
socket=/opt/sofeware/mysql8/data/mysql.sock

[mysqld]
basedir= /opt/sofeware/mysql8
datadir= /opt/sofeware/mysql8/data
socket= /opt/sofeware/mysql8/data/mysql.sock
log-error= /opt/sofeware/mysql8/data/error.log
pid-file= /opt/sofeware/mysql8/data/mysql.pid

#default-authentication-plugin = mysql_native_password

7、设置开机自启动

进入support-files 目录

root@linx:/opt/sofeware/mysql8/support-files# cp mysql.server /etc/init.d/mysql
root@linx:/opt/sofeware/mysql8/support-files# chmod +x /etc/init.d/mysql 

8、注册服务

# chkconfig --add mysql

如果没有命令,则需要处理chkconfig,凝思有

# rpm -aq |grep chkconfig
# export PATH=/sbin:$PATH
# chkconfig
# echo $PATH
# PATH="$PATH":/sbin
# echo $PATH

9、etc/ld.so.conf的配置路径

# vim /etc/ld.so.conf
 
添加如下内容:
/opt/sofeware/mysql8/lib

10、配置环境变量

# vim /etc/profile
# source /etc/profile
 
添加如下内容:
#MYSQL ENVIRONMENT
export PATH=$PATH:/opt/sofeware/mysql8/bin:/opt/sofeware/mysql8/lib

11、启动服务

root@linx:/opt/sofeware/mysql8/data# /etc/init.d/mysql start

如果发现服务启动不来,则看my.cnf 里面是否配置了client的配置,而且socket的文件路径必须存在,且client和mysqld的路径一致。

另外如果想重新初始化mysql,必须先把data文件清空再来。

最后启动成功!!

root@linx:/var/lib/mysql-files# /etc/init.d/mysql start
[ ok ] Starting mysql (via systemctl): mysql.service.
root@linx:/var/lib/mysql-files# ps -ef|grep mysql
root       1851      1  0 21:57 ?        00:00:00 /bin/sh /opt/sofeware/mysql8/bin/mysqld_safe --datadir=/opt/sofeware/mysql8/data --pid-file=/opt/sofeware/mysql8/data/mysql.pid
mysql      2015   1851  8 21:57 ?        00:00:00 /opt/sofeware/mysql8/bin/mysqld --basedir=/opt/sofeware/mysql8 --datadir=/opt/sofeware/mysql8/data --plugin-dir=/opt/sofeware/mysql8/lib/plugin --user=mysql --log-error=/opt/sofeware/mysql8/data/error.log --pid-file=/opt/sofeware/mysql8/data/mysql.pid --socket=/opt/sofeware/mysql8/data/mysql.sock
root       2086   1316  0 21:57 pts/0    00:00:00 grep mysql
root@linx:/var/lib/mysql-files# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.22

Copyright (c) 2000, 2020, 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> alter user 'root@localhost' identified by 'root';

解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored

xeay@ubuntu:~$ mysql
Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
‘/etc/my.cnf’ is ignored ,大概意思是权限全局可写,任何一个用户都可以写。mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件。导致无法进入,这也是mysql的安全机制之一。所以我们必须得改一些权限。设置其他用户不可写。

shell如下

chmod 644 /etc/my.cnf  不能   chmod 777 /etc/my.cnf   会报错!!!!

12、修改数据库 密码

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

13、开启navicat远程连接

发现连接成功。

# mysql -uroot -p #进入数据库
> use mysql;#进入数据库
> select host, user, authentication_string, plugin from user;#查看用户信息
mysql> update user set host='%' where user='root';
> GRANT ALL ON *.* TO 'root'@'%';#授权root用户可以远程登陆
> flush privileges;#立即生效
> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kuaigui2019!';#修改root用户密码
> FLUSH PRIVILEGES;#立即生效
> exit;#退出
# service mysql restart#重启mysql服务