ITPub博客

首页 > 数据库 > MySQL > Mysql安装卸载与启停

Mysql安装卸载与启停

原创 MySQL 作者:linxueguo 时间:2021-09-06 10:19:47 0 删除 编辑

一、下载

官网:

rpm mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

二进制:mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

源码:mysql-boost-5.7.33.tar.gz

建议下载使用ga 版本

二、安装

rpm 文件安装

rpm 安装方式可控性差,不推荐使用该方法。

1.  创建mysql 用户、组

>groupadd mysql

>useradd -g mysql mysql

2.  安装rpm

上传rpm

mysql-community-common-5.7.26-1.el7.x86_64.rpm

mysql-community-libs-5.7.26-1.el7.x86_64.rpm

mysql-community-client-5.7.26-1.el7.x86_64.rpm

mysql-community-server-5.7.26-1.el7.x86_64.rpm

按如下顺序安装

rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

3.  修改目录属主

chown mysql:mysql /var/lib/mysql -R

4.  启动并查看状态

service mysqld start

service mysqld status

5.  修改root 初始密码

可以在/var/log/mysqld.log 查找临时初始密码

/var/log/mysqld.log

2021-04-08T02:41:43.315572Z 1 [Note] A temporary password is generated for root@localhost: .uxfpy2!FkkK

重置密码

>mysql -uroot -p'.uxfpy2!FkkK'

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,启用无密码登录

重启mysql 服务并登录

service mysqld restart

修改root 密码

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

刷新权限并生效

mysql>flush privileges;

任何主机通过用户root 和密码 123456 连接到 mysql 服务器,并授权所有权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

6.  修改mysql 端口

/etc/my.cnf

port=13306

启动报错

4 08 11:09:32 lxgmc2 python[11571]: SELinux is preventing /usr/sbin/mysqld from name_bind access on the tcp_socket port 13306.

根据提示配置端口

semanage port -a -t mysqld_port_t -p tcp 13306

登录指定ip port

mysql -uroot -P 13306 -h 192.168.247.189 -p

7.  重要目录及文件

目录     目录内容

/usr/bin     客户端程序和脚本

/usr/sbin     mysqld 服务器

/var/lib/mysql     日志文件,数据库

/usr/include/mysql   包含( ) 文件

/usr/lib/mysql    

/usr/share/doc/packages 文档

/usr/share/mysql   错误消息和字符集文件

/usr/share/sql-bench   基准程序

 

默认配置文件目录

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

 

配置文件

/etc/my.cnf

 

8. 启动脚本管理

使用rpm 安装 mysql ,系统默认会配置好 mysql 服务、开机自启动、环境变量,无需人工处理。

二进制安装

1.  创建mysql 用户

>groupadd mysql

>useradd -g mysql mysql

 

2.  上传安装介质

 

先检查要安装的Linux 服务器 cglib 版本号,命令 strings /lib64/libc.so.6 | grep ^GLIBC ,查看其是否有相应 glibc 版本

 

只有在系统列表中的cglib 才可以安装,以免对不上还需要升级系统 cglib

 

3.  解压到指定目录

>tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /app/mysql

 

4.  目录文件规划

目录     目录内容

/usr/bin     客户端程序和脚本

/usr/sbin     mysqld 服务器

/var/lib/mysql     日志文件,数据库

/usr/include/mysql   包含( ) 文件

/usr/lib/mysql    

/usr/share/doc/packages 文档

/usr/share/mysql   错误消息和字符集文件

/usr/share/sql-bench   基准程序

 

默认配置文件目录

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file= /var/lib/mysql/mysqld/mysqld.pid

 

5.  主目录处理

[root@lxgmc2 app]# mv mysql-5.7.22-linux-glibc2.12-x86_64 /var/lib/mysql/

[root@lxgmc2 mysql]# mkdir data

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql/ -R

 

6.  创建配置文件及相关目录

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

>vi /etc/my.cnf

[mysqld]
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
port = 13306
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/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
socket=/var/lib/mysql/mysql.sock
 
[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


创建配置文件中的相关文件并修改属主

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysql.sock

[root@lxgmc2 mysql]# mkdir -p /var/lib/mysql/mysqld/

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysqld/mysqld.pid

[root@lxgmc2 mysql]# touch /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql -R

 

7.  安装和初始化mysql

进入bin 目录

[root@lxgmc2 bin]# cd /var/lib/mysql/bin

初始化数据库

>./mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data

 

8.  安全启动mysql

[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

 

查看是否启动成功

[root@lxgmc2 bin]# ps -ef|grep mysql

 

临时的root 密码在 /var/log/mysqld.log 文件中可以找到,需要尽快修改

 

9.  登录修改root 密码

[root@lxgmc2 support-files]# mysql -uroot -p

重置密码

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,启用无密码登录

重启mysql 服务并登录

service mysqld restart

修改root 密码

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

刷新权限并生效

mysql>flush privileges;

任何主机通过用户root 和密码 123456 连接到 mysql 服务器,并授权所有权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

注意:

配置[mysqld]socket=/var/lib/mysql/mysql.sock 不是默认的 /tmp/mysql.sock ,则需要在 [client] 中也配置 socket=/var/lib/mysql/mysql.sock ,否则在使用命令连接 mysql 的时候需要加上参数 -S /var/lib/mysql/mysql.sock

 

10.  启动脚本管理

添加mysql/bin 到用户环境变量

 

 

设置开机自启动

目录不是默认的路径,需要手动配置mysql.server

[root@lxgmc2 support-files]# vi /var/lib/mysql/support-files/mysql.server

 

复制到 /etc/init.d

[root@lxgmc2 support-files]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysql -a

 

添加服务配置

查看mysql 服务是否在服务配置中

chkconfig --list mysql

 

添加到chkconfig

 

验证

 

源码安装

1.  创建mysql 用户

>groupadd mysql

>useradd -g mysql mysql

 

2.  上传安装介质

使用包含 boost 库的版本 mysql-boost-5.7.33.tar.gz

 

3.  解压

tar -zxvf mysql-boost-5.7.33.tar.gz  -C /app/mysql/

 

4.  目录文件规划

目录     目录内容

/usr/bin     客户端程序和脚本

/usr/sbin     mysqld 服务器

/var/lib/mysql     日志文件,数据库

/usr/include/mysql   包含( ) 文件

/usr/lib/mysql    

/usr/share/doc/packages 文档

/usr/share/mysql   错误消息和字符集文件

/usr/share/sql-bench   基准程序

 

默认配置文件目录

Basedir=/var/lib/mysql

datadir=/var/lib/mysql/data

socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log

pid-file= /var/lib/mysql/mysqld/mysqld.pid

 

5.  主目录处理

[root@lxgmc2 mysql]# mkdir /var/lib/mysql/data -p

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql/ -R

 

6.  创建配置文件及相关目录

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

>vi /etc/my.cnf

[mysqld]
basedir=/var/lib/mysql
datadir=/var/lib/mysql/data
port = 13306
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/lib/mysql/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
socket=/var/lib/mysql/mysql.sock
 
[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


创建配置文件中的相关文件并修改属主

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysql.sock

[root@lxgmc2 mysql]# mkdir -p /var/lib/mysql/mysqld/

[root@lxgmc2 mysql]# touch /var/lib/mysql/mysqld/mysqld.pid

[root@lxgmc2 mysql]# touch /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/log/mysqld.log

[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql -R

 

 

7.  编译安装mysql -5.7.33

安装编译软件和依赖

yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm

yum install -y ncurses*

yum install gcc gcc-c++ -y

yum install -y bison

编译

>cd /app/mysql/mysql-5.7.3

#配置中的目录根据规划设置
#预编译
>cmake \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \ 
-DCMAKE_INSTALL_PREFIX=/var/lib/mysql \                ---mysql安装主目录
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \          ---连通信文件位置
-DDEFAULT_CHARSET=utf8 \                            ---默认字符
-DDEFAULT_COLLATION=utf8_general_ci \                 ---检验字符
-DMYSQL_DATADIR=/var/lib/mysql/data \             ---mysql数据存放目录
-DSYSCONFDIR=/etc/my.cnf \                         ---mysql配置文件
-DWITH_MYISAM_STORAGE_ENGINE=1 \                ---支持MYIASM引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              ---支持 INNODB引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 \               ---支持安装数据库分区
-DENABLE_DEBUG_SYNC=0 \
-DENABLED_LOCAL_INFILE=1 \                      ---允许从本地导入数据
-DENABLED_PROFILING=1 \                       
-DMYSQL_TCP_PORT=13306 \                          ---mysql端口
-DWITH_DEBUG=0 \                              ---禁止调试模式
-DWITH_SSL=yes \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=boost/boost_1_59_0
 
#编译(耗时较长)
>make && make install


完成安装

8.  环境变量配置及启动脚本管理

添加mysql/bin 到用户环境变量

 

 

设置开机自启动

目录不是默认的路径,需要手动配置mysql.server

[root@lxgmc2 support-files]# vi /var/lib/mysql/support-files/mysql.server

 

复制到 /etc/init.d

[root@lxgmc2 support-files]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysql -a

 

添加服务配置

查看mysql 服务是否在服务配置中

chkconfig --list mysql

 

添加到chkconfig

 

验证 (mysql 初始化并开启以后 )

 

 

9.  初始化mysql

  初始化MySQL ,切记 --defaults-file=/etc/my.cnf 要放在参数的第一位,初始化信息可以在 MySQL errorlog 中查看,并且在 errorlog 会生成一个 root 的随机密码,该随机密码仅仅为 root@localhost 用户所有。

>m ysqld  -- initialize  -- basedir=/ var/lib /mysql   datadir=/ var/lib /mysql/data  -- user=mysql

10.  安全启动mysql

[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

 

查看是否启动成功

[root@lxgmc2 bin]# ps -ef|grep mysql

 

临时的root 密码在 /var/log/mysqld.log 文件中可以找到,需要尽快修改

 

11.  登录修改root 密码

[root@lxgmc2 support-files]# mysql -uroot -p

重置密码

mysql> set password=password('Lin_xueguo1');

/etc/my.cnf 增加配置 skip-grant-tables ,启用无密码登录

重启mysql 服务并登录

service mysqld restart

修改root 密码

mysql>use mysql

mysql>select host,user,authentication_string from user;

mysql>update user set host='%',authentication_string=password('123456') where user='root';

或者使用

mysql>alter user 'root'@'%' identified by '123456';

刷新权限并生效

mysql>flush privileges;

任何主机通过用户root 和密码 123456 连接到 mysql 服务器,并授权所有权限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql> flush privileges;

 

注意:

配置[mysqld]socket=/var/lib/mysql/mysql.sock 不是默认的 /tmp/mysql.sock ,则需要在 [client] 中也配置 socket=/var/lib/mysql/mysql.sock ,否则在使用命令连接 mysql 的时候需要加上参数 -S /var/lib/mysql/mysql.sock

 

 

三、卸载

rpm 安装方式卸载

查包名:rpm -qa|grep -i mysql

删除命令:rpm -e nodeps 包名

yum 安装方式卸载

1. 查看已安装的 mysql

命令:rpm -qa | grep -i mysql

2. 卸载 mysql

命令:yum remove mysql-community-server-5.6.36-2.el7.x86_64

查看mysql 的其它依赖: rpm -qa | grep -i mysql

// 卸载依赖

yum remove mysql-libs

yum remove mysql-server

yum remove perl-DBD-MySQL

yum remove mysql

二进制/ 源码安装方式卸载

停服务并设置开机不自启

systemctl stop mysqld

systemctl disable mysqld

搜索相关配置文件并删除

find / -name mysql

删除mysql 用户

userdel mysql

 

四、启动关闭

启动

1. service mysql start

2. mysqld_safe [--defaults-file=/etc/my.cnf] --user=mysql &

3. mysqld [--defaults-file=/etc/my.cnf] --user=mysql &

4. /var/lib/mysql/support-files/mysql.server start

5. /etc/init.d/mysql start( 等同方法 4)

 

关闭

1. service mysql stop

2. /var/lib/mysql/support-files/mysql.server stop

3. /etc/init.d/mysql stop( 等同方法 2)

4. mysqladmin -uroot -p [-S /var/lib/mysql/mysql.sock] shutdown

5. mysql> shutdown;  #above MySQL 5.7.9

 

五、数据库管理

创建数据库

方法1 :使用 CREATE DATABASE 语法创建

CREATE DATABASE [IF NOT EXISTS] < 数据库名 > [[DEFAULT] CHARACTER SET < 字符集名 >] [[DEFAULT] COLLATE < 校对规则名 >];

例子:

mysql> create database lxgdb1;

 

 

方法2 :使用 mysqladmin 工具创建

mysqladmin -uroot -p create lxgdb2;

例子:

[root@lxgmc2 ~]# mysqladmin -uroot -p create lxgdb2

 

修改数据库

使用ALTER DATABASE 语法

ALTER DATABASE [ 数据库名 ] { [ DEFAULT ] CHARACTER SET < 字符集名 > |[ DEFAULT ] COLLATE < 校对规则名 >}

例子:

先使用show create dabase 语句查看数据库创建脚本

mysql> show create database lxgdb1;

 

修改默认的字符集

mysql> alter database lxgdb1 CHARACTER SET gbk;

 

删除数据库

方法1 :使用 DROP DATABASE 语法

DROP DATABASE [ IF EXISTS ] < 数据库名 >

例子:

mysql> drop database lxgdb1;

 

 

方法 2 :使用 mysqladmin 工具删除

mysqladmin -u root -p drop lxgdb2

例子:

[root@lxgmc2 ~]# mysqladmin -uroot -p drop lxgdb2

 

 

Mysql 字符集

查看字符集

mysql> show variables like '%char%';

 

修改字符集

如果存在不同的字符集,需要统一字符集,通过修改配置文件重启即可。()

>vi /etc/my.cnf

[mysql]

default-character-set=utf8

[client]

default-character-set=utf8

[mysqld]

character_set_server=utf8

character_set_client=utf8

collation_server=utf8_general_ci

修改过的编码只对之后创建的数据库生效。

 

六、MySQL5.7 和以前版本不同点

初始化工具不同

MySQL5.6.xx 使用的是 mysql_install_db MySQL5.7.6+ 官方推荐使用 mysqld initialize

初始化数据库不同

MySQL5.6.xx 初始化之后存在 mysql,information_schema,performance_schema,test 四个数据库, MySQL5.7.6+ 初始化之后存在 mysql,information_schema,performance_schema,sys 四个数据库。

初始化用户不同

MySQL5.6.xx 初始化之后存在 root@localhost,root@'::1',root@'hostname',''@'localhost',''@'hostname' 五个用户, MySQL5.7.6+ 初始化之后存在 mysql.sys,root@localhost 用户

初始化root 密码

MySQL5.6.xx 初始化之后 root 用户密码为空, MySQL5.7.6+ 初始化之后会为 root@localhost 用户生成随机密码。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31374736/viewspace-2790504/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-07-16

  • 博文量
    10
  • 访问量
    3357