MySql安装手册(二进制安装)

安装环境

华为云服务器CentOS8.0、MySql5.7.40

安装步骤

一、清除预装的mariadb或mysql

[root@hecs-141427 ~]# rpm -aq|grep -E "mariadb|mysql"|xargs yum remove -y;

 二、卸载完成后再次查询已安装的mariadb和mysql

[root@hecs-141427 ~]# rpm -aq|grep -E "mariadb|mysql";

 查询为空表示卸载完成了。

 三、查找数据库残留文件

[root@hecs-141427 ~]# rpm -aq|grep -E "mariadb|mysql";
[root@hecs-141427 ~]# find / -name mysql;
/var/lib/mysql
/var/lib/mysql/mysql
[root@hecs-141427 ~]# find / -name my.cnf;
[root@hecs-141427 ~]# find / -name mariadb;
/usr/share/mariadb
/var/log/mariadb
[root@hecs-141427 ~]# 

如果能找到下面两个数据存储目录和配置文件,则需要删除:

/var/lib/mysql

/etc/my.cnf

[root@hecs-141427 ~]# rpm -aq|grep -E "mariadb|mysql";
[root@hecs-141427 ~]# find / -name mysql;
/var/lib/mysql
/var/lib/mysql/mysql
[root@hecs-141427 ~]# find / -name my.cnf;
[root@hecs-141427 ~]# find / -name mariadb;
/usr/share/mariadb
/var/log/mariadb
[root@hecs-141427 ~]# rm -rf /var/lib/mysql
[root@hecs-141427 ~]# rm -rf /var/lib/mysql/mysql
[root@hecs-141427 ~]# rm -rf /usr/share/mariadb
[root@hecs-141427 ~]# rm -rf /var/log/mariadb
[root@hecs-141427 ~]# find / -name mariadb;
[root@hecs-141427 ~]# find / -name mysql;
[root@hecs-141427 ~]# 

 四、安装编译依赖的环境

[root@hecs-141427 ~]# yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel

 五、MySql官网下载对应版本的压缩包

 

 

 注意这一步:选择源码安装和二进制安装或者rpm安装选择下载的包不一样,注意不要下载错。

 

 

 六、通过xftp将压缩包上传至服务器

 七、解压转移包

[root@hecs-141427 ~]# ls
all_databases_backup.sql  mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
[root@hecs-141427 ~]# 
[root@hecs-141427 ~]# 
[root@hecs-141427 ~]# tar -zxf mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz 
[root@hecs-141427 ~]# ls
all_databases_backup.sql  mysql-5.7.40-linux-glibc2.12-x86_64  mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
[root@hecs-141427 ~]# mv mysql-5.7.40-linux-glibc2.12-x86_64 /usr/local/mysql
[root@hecs-141427 ~]# cd /usr/local/mysql
[root@hecs-141427 mysql]# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files
[root@hecs-141427 mysql]# mkdir -p data
[root@hecs-141427 mysql]# ls
bin  data  docs  include  lib  LICENSE  man  README  share  support-files
[root@hecs-141427 mysql]# 

将加压的文件夹移动到/usr/local下,重命名为mysql

进入mysql主目录下创建data 目录

 八、创建mysql用户

查看组和用户情况

cat /etc/group | grep mysql
cat /etc/passwd |grep mysql

若存在,则删除原mysql用户,会删除其对应的组和用户

 创建用户组和用户,给文件授权

[root@hecs-141427 mysql]# groupadd mysql
[root@hecs-141427 mysql]# useradd -r -g mysql -s /bin/false mysql
[root@hecs-141427 mysql]# chown -R mysql:mysql /usr/local/mysql
[root@hecs-141427 mysql]# 

九、创建配置文件

vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
 
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8
 
[mysql]
default-character-set=utf8
 
[mysqld]
log-bin=mysql-bin 
binlog-format=ROW 
server_id=1
max_connections=1000
 
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake

修改配置文件:/etc/my.cnf,配置不对的话,后面初始化不全,会拿不到默认密码。

十、创建配置文件中的各个目录

 创建文件/tmp/mysql.sock:设置用户组及用户,授权:

[root@hecs-141427 ~]# 
[root@hecs-141427 ~]# cd /tmp
[root@hecs-141427 tmp]# touch mysql.sock
[root@hecs-141427 tmp]# chown mysql:mysql mysql.sock
[root@hecs-141427 tmp]# chmod 755 mysql.sock
[root@hecs-141427 tmp]# ls
hsperfdata_root  systemd-private-6295210078d74ee9b2b9e4706e428cb8-chronyd.service-4ekDQg  wrapper-837-1-in
mysql.sock       systemd-private-6295210078d74ee9b2b9e4706e428cb8-nacos.service-XI7Gqi    wrapper-837-1-out
[root@hecs-141427 tmp]# 

 创建文件/tmp/mysqld/mysqld.pid:

root@hecs-141427 tmp]# ls
hsperfdata_root  systemd-private-6295210078d74ee9b2b9e4706e428cb8-chronyd.service-4ekDQg  wrapper-837-1-in
mysql.sock       systemd-private-6295210078d74ee9b2b9e4706e428cb8-nacos.service-XI7Gqi    wrapper-837-1-out
[root@hecs-141427 tmp]# mkdir mysqld
[root@hecs-141427 tmp]# cd mysqld
[root@hecs-141427 mysqld]# touch mysqld.pid
[root@hecs-141427 mysqld]# cd ..
[root@hecs-141427 tmp]# 
[root@hecs-141427 tmp]# chown -R mysql:mysql mysqld
[root@hecs-141427 tmp]# cd mysql
-bash: cd: mysql: No such file or directory
[root@hecs-141427 tmp]# cd mysqld
[root@hecs-141427 mysqld]# chmod 755 mysqld.pid
[root@hecs-141427 mysqld]# 

 创建文件/var/log/mysqld.log:

root@hecs-141427 mysqld]# touch /var/log/mysqld.log
[root@hecs-141427 mysqld]# 
[root@hecs-141427 mysqld]# chown -R mysql:mysql /var/log
[root@hecs-141427 mysqld]# 
[root@hecs-141427 mysqld]# cd /var/log/
[root@hecs-141427 log]# 
[root@hecs-141427 log]# chmod 755 mysqld.log
[root@hecs-141427 log]# 

十一、初始化安装数据库 

进入bin目录:

[root@hecs-141427 log]# cd /usr/local/mysql/bin/
[root@hecs-141427 bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
[root@hecs-141427 bin]# 

十二、安全启动mysql 

[root@hecs-141427 bin]# ./mysqld_safe --user=mysql &
[1] 276361
[root@hecs-141427 bin]# 2022-10-22T03:50:47.699095Z mysqld_safe Logging to '/var/log/mysqld.log'.
2022-10-22T03:50:47.738260Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

是否启动成功,可以通过查看mysql进程 :

[root@hecs-141427 tmp]# ps -ef | grep mysql
root      276361  275885  0 11:50 pts/0    00:00:00 /bin/sh ./mysqld_safe --user=mysql
mysql     276716  276361  0 11:50 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/tmp/mysqld/mysqld.pid --socket=/tmp/mysql.sock --port=3306
root      276761  275948  0 11:51 pts/1    00:00:00 grep --color=auto mysql
[root@hecs-141427 tmp]# 

默认密码在mysqld.log日志里, 找到后保存到安全的地方:

红框里边的就是mysql登录密码(如果找不到可能默认是空,登录时密码直接回车,否则可能安装有问题):

 十三、修改密码、远程登录授权

 进入bin目录:

[root@hecs-141427 tmp]# cd /usr/local/mysql/bin/
[root@hecs-141427 bin]# 

 登录mysql,拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端:

[root@hecs-141427 bin]# ./mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.40-log

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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:

[root@hecs-141427 bin]# ./mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.7.40-log

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

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> set password=password('123456');
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> 

设置远程登录权限:

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> 

 立即生效:

-mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> 

 退出quit 或者 exit:

mysql> quit;
Bye
[root@hecs-141427 bin]# 

十四、开机服务启动设置 

把/usr/local/mysql/support-files/mysql.server 拷贝为/etc/init.d/mysql:

[root@hecs-141427 bin]# cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@hecs-141427 bin]# 

 mysql注册为开机启动的服务:

[root@hecs-141427 bin]# chkconfig --add mysql
[root@hecs-141427 bin]# 

 启动 或 停止:

[root@hecs-141427 bin]# chkconfig --add mysql
[root@hecs-141427 bin]# systemctl start mysql
[root@hecs-141427 bin]# systemctl stop mysql
[root@hecs-141427 bin]# systemctl start mysql
[root@hecs-141427 bin]# 

十五、创建快捷方式 

服务启动后,直接运行mysql -u root -p即可登录,不需要进入到对应的目录:

[root@hecs-141427 bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@hecs-141427 bin]# 

猜你喜欢

转载自blog.csdn.net/Genius_zhu/article/details/127446914