首页 > 数据库 > MySQL > Mysql安装卸载与启停
官网: https://downloads.mysql.com/archives/community/
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 安装方式可控性差,不推荐使用该方法。
>groupadd mysql
>useradd -g mysql mysql
上传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
chown mysql:mysql /var/lib/mysql -R
service mysqld start
service mysqld status
可以在/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;
/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
目录 目录内容
/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
使用rpm 安装 mysql ,系统默认会配置好 mysql 服务、开机自启动、环境变量,无需人工处理。
>groupadd mysql
>useradd -g mysql mysql

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

只有在系统列表中的cglib 才可以安装,以免对不上还需要升级系统 cglib
>tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz -C /app/mysql

目录 目录内容
/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
[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

修改配置文件:/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
进入bin 目录
[root@lxgmc2 bin]# cd /var/lib/mysql/bin
初始化数据库
>./mysqld --initialize --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

查看是否启动成功
[root@lxgmc2 bin]# ps -ef|grep mysql

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

[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
添加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

验证

>groupadd mysql
>useradd -g mysql mysql
使用包含 boost 库的版本 mysql-boost-5.7.33.tar.gz

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

目录 目录内容
/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
[root@lxgmc2 mysql]# mkdir /var/lib/mysql/data -p
[root@lxgmc2 mysql]# chown mysql:mysql /var/lib/mysql/ -R
修改配置文件:/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
安装编译软件和依赖
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
完成安装
添加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 初始化并开启以后 )

初始化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
[root@lxgmc2 bin]# ./mysqld_safe --user=mysql &

查看是否启动成功
[root@lxgmc2 bin]# ps -ef|grep mysql

临时的root 密码在 /var/log/mysqld.log 文件中可以找到,需要尽快修改
[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 -qa|grep -i mysql
删除命令:rpm -e – nodeps 包名
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> 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.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 用户
MySQL5.6.xx 初始化之后 root 用户密码为空, MySQL5.7.6+ 初始化之后会为 root@localhost 用户生成随机密码。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31374736/viewspace-2790504/ ,如需转载,请注明出处,否则将追究法律责任。