系统环境为server2012
原文链接
环境:
1.操作系统:CentOS release 6.8 (Final)
2.安装版本: mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
3.下载地址:http://dev.mysql.com/downloads/mysql/
4.下载说明:上边的下载地址是最新版的,如果想下载老版本可以点击页面中的超链接“Looking for previous GA versions?”
5.特殊说明:Linux下MySQL5.6与MySQL5.7安装方法略有不同,本文以5.6为主
参考博文:
1、下载mysql解压版,解压安装包到指定目录
Linux学习之CentOS(十三)--CentOS6.4下Mysql数据库的安装与配置
[root@localhost ] # mysqldump -h localhost -u root -proot --databases Surpass --routines > /home/SQLBackup/Surpassme_20180801.sql
查找并删除maysql有关的文件
find / -name mysql
rm -rf 上边查找到的路径,多个路径用空格隔开
或用下面的一条命令实现
find / -name mysql|xargs rm -rf
MySQL修改root密码的多种方法
2、在以上目录中,复制一份my-default.ini文件,重命名为my.ini,进行如下修改(按照需要):
tar -zxvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
MySQL的备份与还原
[mysqld]
# 服务端的编码方式
character_set_server=utf8
# These are commonly set, remove the # and set as required.
#数据文件存放目录
basedir = C:Program Filesmysql
#数据文件存放目录
datadir = C:Program Filesmysqldata
port = 3306
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 允许最大连接数
max_connections=200
rm -rf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.31-linux-glibc2.5-x86_64/ /usr/local/mysql
解决mysql导入还原时乱码的问题
[root@localhost ] # du -sh /home/SQLBackup/Surpassme_20180801.sql
200M Surpassme_20180801.sql
3、添加环境变量,将C:Program Filesmysqlbin添加到系统的环境变量Path中
先检查是是否存在用户和组
groups mysql
若无,则添加
groupadd mysql
useradd -r -g mysql mysql #-r建立系统账号
groups mysql
Mysql开启远程连接方法
4、在命令行中执行命令mysqld -install
cd mysql/
chown -R mysql:mysql ./
mysql 赋予用户权限 grant命令
``
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data (--pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp)
安装完后修改当前目录拥有者为root用户修改date目录拥有者为mysql
chown -R root:root ./
chown -R mysql:mysql data
Mysql数据库操作常用命令
[root@localhost ] # rpm -qa | grep -i mysql
MySQL-client-5.6.38-1.el6.x86_64
MySQL-server-5.6.38-1.el6.x86_64
MySQL-devel-5.6.38-1.el6.x86_64
与之对应的卸载命令:mysqld --remove
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
CentOS下如何完全卸载MySQL?解决卸载不干净的问题
5、mysql数据初始化
启动mysql服务
./support-files/mysql.server start
#如果MySQL启动报错,则可能是已经存在MySQL进程,杀掉即可,然后再重启
ps aux | grep mysql
kill -9 上边的进程号
#或者下边一条命令即可杀掉所有MySQL进程
ps aux|grep mysql|awk '{print $2}'|xargs kill -9
MySQL启动之后再执行如下命令更改密码:
./bin/mysqladmin -u root -h 127.0.0.1 password 'root'
上一步**安装脚本执行**输出的日志中告诉我们如何更改密码了
./bin/mysqladmin -u root password 'new-password'
./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
密码更改后即可登录MySQL
./bin/mysql -h127.0.0.1 -uroot -proot
1、yum进行mysql的安装
我是通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本:
[root@xiaoluo ~]# yum list | grep mysql
就可以得到yum服务器上mysql数据库的可下载版本信息:
然后我们可以通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)
[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-devel
1.2 mysql数据库的初始化及相关配置
我们在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。
注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,如:
[root@xiaoluo ~]# service mysqld start
初始化 MySQL 数据库: WARNING: The host 'xiaoluo' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h xiaoluo password 'new-password'
Alternatively you can run:
/usr/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/bin/mysqlbug script![确定]
正在启动 mysqld: [确定]
这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了,如:
[root@xiaoluo ~]# service mysqld restart
停止 mysqld: [确定]
正在启动 mysqld: [确定]
我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过 chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:
[root@xiaoluo ~]# chkconfig --list | grep mysqld
mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
我们发现mysqld服务并没有开机自动启动,我们当然可以通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了
[root@xiaoluo ~]# chkconfig mysqld on
[root@xiaoluo ~]# chkconfig --list | grep mysql
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :
/usr/bin/mysqladmin -u root password 'new-password' // 为root账号设置密码
所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)
[root@xiaoluo ~]# mysqladmin -u root password 'root' // 通过该命令给root账号设置密码为 root
此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了
1.3 mysql数据库的主要配置文件
1.3.1./etc/my.cnf 这是mysql的主配置文件
我们可以查看一下这个文件的一些信息
[root@xiaoluo etc]# ls my.cnf
my.cnf
[root@xiaoluo etc]# cat my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
1.3.2./var/lib/mysql mysql数据库的数据库文件存放位置
我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下
[root@xiaoluo ~]# cd /var/lib/mysql/
[root@xiaoluo mysql]# ls -l
总用量 20488
-rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1
-rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1
drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql // 这两个是mysql数据库安装时默认的两个数据库文件
srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock
drwx------. 2 mysql mysql 4096 4月 6 21:59 test // 这两个是mysql数据库安装时默认的两个数据库文件
我们可以自己创建一个数据库,来验证一下该数据库文件的存放位置
创建一个我们自己的数据库:
mysql> create database xiaoluo;
Query OK, 1 row affected (0.00 sec)
[root@xiaoluo mysql]# ls -l
总用量 20492
-rw-rw----. 1 mysql mysql 10485760 4月 6 22:01 ibdata1
-rw-rw----. 1 mysql mysql 5242880 4月 6 22:01 ib_logfile0
-rw-rw----. 1 mysql mysql 5242880 4月 6 21:59 ib_logfile1
drwx------. 2 mysql mysql 4096 4月 6 21:59 mysql
srwxrwxrwx. 1 mysql mysql 0 4月 6 22:01 mysql.sock
drwx------. 2 mysql mysql 4096 4月 6 21:59 test
drwx------. 2 mysql mysql 4096 4月 6 22:15 xiaoluo // 这个就是我们刚自己创建的xiaoluo数据库
[root@xiaoluo mysql]# cd xiaoluo/
[root@xiaoluo xiaoluo]# ls
db.opt
3./var/log mysql数据库的日志输出存放位置
我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下
[root@xiaoluo xiaoluo]# cd
[root@xiaoluo ~]# cd /var/log
[root@xiaoluo log]# ls
amanda cron maillog-20130331 spice-vdagent.log
anaconda.ifcfg.log cron-20130331 mcelog spooler
anaconda.log cups messages spooler-20130331
anaconda.program.log dirsrv messages-20130331 sssd
anaconda.storage.log dmesg mysqld.log tallylog
anaconda.syslog dmesg.old ntpstats tomcat6
anaconda.xlog dracut.log piranha wpa_supplicant.log
anaconda.yum.log gdm pm-powersave.log wtmp
audit httpd ppp Xorg.0.log
boot.log ibacm.log prelink Xorg.0.log.old
btmp lastlog sa Xorg.1.log
btmp-20130401 libvirt samba Xorg.2.log
cluster luci secure Xorg.9.log
ConsoleKit maillog secure-20130331 yum.log
其中mysqld.log 这个文件就是我们存放我们跟mysql数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息
因为我们的mysql数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道mysql数据库绑定的端口号是 3306 ,所以我们可以通过 netstat -anp 命令来查看一下,Linux系统是否在监听 3306 这个端口号:
结果如上所示,Linux系统监听的3306端口号就是我们的mysql数据库!!!!
执行mysqld --initialize-insecure --user=mysql
命令,创建一个空密码的root账户。注意,如果执行的是mysqld
--initialize命令,则会创建一个随机密码用户。
本地登录Mysql后执行如下命令
grant all privileges on *.* to root@'%' identified by '密码';
flush privileges;
方法1: 用SET PASSWORD命令
mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
方法2:用mysqladmin
mysqladmin -u root password "newpass"
如果root已经设置过密码,采用如下方法
mysqladmin -u root password oldpass "newpass"
方法3: 用UPDATE直接编辑user表
mysql -u root
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
在丢失root密码的时候,可以这样
mysqld_safe --skip-grant-tables&
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';
mysql> FLUSH PRIVILEGES;
[root@localhost ] # service mysql stop
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld restart
service mysqld status
MySQL备份和还原,都是利用mysqldump、mysql和source命令来完成的。
1.Win32下MySQL的备份与还原
1.1 备份
开始菜单 | 运行 | cmd |利用“cd /Program Files/MySQL/MySQL Server 5.0/bin”命令进入bin文件夹 | 利用“mysqldump -u 用户名 -p databasename >exportfilename”导出数据库到文件,如mysqldump -u root -p voice>voice.sql,然后输入密码即可开始导出。
1.2 还原
进入MySQL Command Line Client,输入密码,进入到“mysql>”,输入命令"show databases;",回车,看看有些什么数据库;建立你要还原的数据库,输入"create database voice;",回车;切换到刚建立的数据库,输入"use voice;",回车;导入数据,输入"source voice.sql;",回车,开始导入,再次出现"mysql>"并且没有提示错误即还原成功。
2.Linux下MySQL的备份与还原
2.1 备份
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。
注意:服务器运行时 加上 --skip-opt选项 否则备份不全记录
2.2 还原
法一:
[root@localhost ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。
法二:
[root@localhost ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录)
[root@localhost mysql]# mysql -u root -p voice<voice.sql,输入密码即可。
还原时的中文乱码问题:
解决方法:
第一步:还原时建立数据库和表都为utf8格式(建议utf8,当然gbk或者gb2312也行)
复制代码 代码如下:
CREATE DATABASE `shegongku` DEFAULT CHARACTER SET utf8
CREATE TABLE `members` (
`uid` mediumint(8) unsigned NOT NULL default '0',
`username` varchar(15) NOT NULL default '',
`password` varchar(40) NOT NULL default '',
`salt` varchar(16) default NULL,
`email` varchar(60) NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
第二步,将sql文件的编码转换下,转成utf8格式,可以notepad2,也可以用UltraEditor进行转换,再在第一行sql文件的添加一行 set names utf8 保存。
第三步,导入。一般就不会出现乱码了,这时如果你在 终端cmd下再次查询发现还是乱码的话,这个不是数据库问题,而是显示的问题,在终端里输入 set names gbk,这样中文就显示正常了
初始化数据会会在安装目录下产生一个数据文件夹,如下图:
1.设置所有用户密码
set passowrd for 'root'@'%' = password('你的密码')
2.将空用户删除
3.将默认的root用户改为其他名字
因为以上配置文件中的设置为datadir = C:Program Filesmysqldata
,所以文件夹名称为data。
[root@localhost ] # yum -y remove MySQL-*
方式:
文件方式:找到服务里的mysql服务进行重新启动
命令行方式:cmd-->net start mysql-->net stop mysql-->net start
mysql
6、运行 net start mysql 启动服务,
登录:
mysql 参数
-D 打开指定数据库
mysql -V 输出mysql版本信息
mysql -uroot -p #回车 p密码
mysql -uroot -P -h127.0.0.1 #P端口号,默认是3306;h服务器名称
退出:
exit;
quit;
q;
原文链接
[root@localhost ] # find / -name mysql
/var/lib/mysql
/usr/lib64/mysql
7、设置密码。执行mysqladmin -u root -p password
新密码
命令,为root用户设置密码。此处为123。
//创建用户
mysql> insert into mysql.user(Host,User,Password)
values("localhost","phplamp",password("1234"));
//刷新系统权限表
mysql>flush privileges;
注意,Enter password 处输入的是原密码,此处为空。
mysql --help | grep my.cnf
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data (--pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp)
[root@localhost ] # mv /var/lib/mysql /var/lib/mysql20180801
8、登录
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
9、查看数据库
[root@localhost ] # rm -rf /usr/lib64/mysql
10、设置远程登录
查看user表,如下:
[root@localhost ] # mv /etc/my.cnf /etc/my.cnf.bak20180801
数据库中执行命令update user set host = '%' where user = 'root';
如下图:
[root@localhost ] # mkdir -p /home/MySQL8.0
[root@localhost ] # tar -xf mysql-8.0.11-1.el6.x86_x64.rpm-bundle.tar -C /home/MySQL8.0
最好刷新一下权限mysql> flush privileges;
最后重新启动mysql服务,就可以进行远程登陆了(如果不能远程,重启一下一般会解决)。
[root@localhost ] # rpm -ivh mysql-community-{server,client,common,libs}-8.0.11-1.el6.x86_64.rpm
C:Program Filesmysqlbin>net stop mysql
MySQL 服务正在停止..
MySQL 服务已成功停止。
C:Program Filesmysqlbin>net start mysql
MySQL 服务正在启动 .
MySQL 服务已经启动成功。
11、忘记密码处理
如下图,打开配置文件my.ini 在mysqld下面添加 skip-grant-tables,保存退出,并重启mysql服务。
[root@localhost ] # vim /etc/my.cnf
这一步非常重要,在MySQL 8.0中有部分配置参数只能在初始化数据库前进行配置和更改,不支持初始化之后再更改,如忽略大小写配置就是如此,lower_case_table_names
此后可以使用mysql -u root -p
,不使用密码进行登录,
之后进入数据库,执行 use mysql
命令切换到其中的mysql数据库。
然后执行如下命令
[root@localhost ] # mysqld --initialize
update MySQL.user set authentication_string=password('123') where user='root' ;
flush privileges;
改好之后,重新修改my.ini这个文件,将加入的skip-grant-tables
这行删除,保存退出,重启mysql服务。
[root@localhost ] # chown -R mysql:mysql /var/lib/mysql
值得注意的是,重新进入数据库可能会遇到1820错误,要求重置密码,如下图,这个时候,只需要执行命令
SET PASSWORD = PASSWORD('123');
即可
12、备份与还原
[root@localhost ] # service mysqld start
为了测试,创建一个数据库mvc
还原,语法如下:
[root@localhost ] # grep 'temporary password' /var/log/mysqld.log
mysql -u root -p [dbname] < backup.sql
18、修改root密码,并设置相应的权限
19、登录MySQL
下图的示例,还原mvc数据库
执行的命令是 mysql -u root -p mvc < e:mvc201709120200.sql
[root@localhost ] # mysql -h localhost -u root -p
20、允许进程远程登录
21、还原数据数据库
备份,语法如下:
备份一个数据库多个表
[root@localhost ] # mysql -h localhost -u root -p < /home/SQLBackup/Surpassme_20180801.sql
mysqldump -u root -p dbname table1 table2 ... > bakname.sql
本文同步在微信订阅号上发布,如各位小伙伴们喜欢我的文章,也可以关注我的微信订阅号:woaitest,或扫描下面的二维码添加关注:
备份多个数据库 加上了--databases选项,后面跟多个数据库
mysqldump -u root -p --databases dbname1 dbname2... > bakname.sql
备份所有数据库
mysqldump -u root -p -all-databases > bakname.sql
下图中的示例,只备份一个数据库mvc,同时指定字符集为utf8
mysqldump -u root -p --default-character-set=utf8 mvc >e:mvcbak.sql
通常,可以使用一些工具进行数据备份与还原,例如Workbench
如果要定时将数据备份到其他服务器,可以使用mysqlbackupftp这个软件。
总结
以上所述是小编给大家介绍的windows环境下mysql的解压安装及备份和还原,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
本文由星彩网app下载发布于星彩彩票app下载,转载请注明出处:windows环境下mysql的解压安装及备份和还原,0详细