0%

linux通过压缩包安装Mysql

卸载原来

1
2
3
4
rpm -qa | grep mariadb
#查看是否存在,mariadb是一个分支,也是数据库,和mysql类似
#如果上面输出有结果的话,记得卸载掉
rpm -e --nodeps mariadb-libs

Mysql用户准备

添加用户组和用户

1
2
3
4
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql

压缩包下载

首先去官网下载对应版本的压缩包,这里我的版本是5.7.30

解压压缩包

在对应目录下解压Mysql压缩包

1
2
cd /usr/local
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

重命名

对解压后的文件夹重新命名

1
mv mysql-5.7.30-linux-glibc2.12-x86_64 mysql

安装

创建data目录存放数据,将目录授权给mysql用户, 进行mysql初始化。

1
2
3
4
5
6
7
8
cd mysql
mkdir /opt/database/mysql_data
chown -R mysql:mysql /opt/database/mysql_data/
chown -R mysql:mysql ./
chmod 755 /opt/database/mysql_data/ -R
chmod 755 /usr/local/mysql/ -R
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/opt/database/mysql_data/
#初始化完成记得记下来最后的初始密码

修改配置文件my.cnf

1
vi /etc/my.cnf

配置文件参考如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[mysqld]
datadir=/opt/database/mysql_data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER
symbolic-links=0
max_connections=600
slow_query_log=1
slow_query_log_file=/opt/database/mysql_data/slow_query_log.log
long_query_time=2
lower_case_table_names=1
character_set_server=utf8mb4
log-error=/opt/database/mysql_data/mysql_error.log

#max_allowed_packet = 40m

innodb_data_home_dir = /opt/database/mysql_data
#innodb_data_file_path = ibdata1:200M;ibdata2:100M:autoextend
innodb_log_group_home_dir = /opt/database/mysql_data
innodb_buffer_pool_size = 128M
innodb_log_file_size = 48M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_autoinc_lock_mode = 2

innodb_file_per_table=1
innodb_large_prefix=1
innodb_file_per_table=true

配置启动文件

1
2
ln -f -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
ln -f -s /bin/my_print_defaults /usr/bin/

设置环境变量

设置环境变量来使任何地方都可以使用mysql命令

1
2
3
4
vi /etc/profile
#在文件中Path增加上mysql的bin目录
#最后source 使改变生效
source /etc/profile

启动

1
service mysqld start

连接并修改密码

1
2
mysql -uroot -p
#输入初始密码连接,连接成功后,需要修改密码才可以进行下一步操作
1
2
3
4
5
#修改当前用户密码
ALTER USER USER() IDENTIFIED BY 'root';
#修改指定用户
ALTER USER 'root'@'%' IDENTIFIED BY 'root';
flush privileges;

开启远程访问

1
2
update user set host='%' where user = 'root'
flush privileges;

主机连接虚拟机,记得开放端口

1
2
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload # 配置立即生效