目录
Mysql安装
下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
解压安装包
#解压安装包
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
#删除原始包(可以保留备用)
rm mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
#移动解压目录到/usr/local/mysql
mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/mysql
创建数据文件存放目录
mkdir /usr/local/mysql/data
创建系统用户组和用户
groupadd mysql ---新建一个msyql组
useradd -g mysql mysql ---新建msyql用户
修改当前目录权限
chown -R mysql:mysql /usr/local/mysql
配置/etc/my.cnf
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
修改/etc/profile环境变量
在文件尾部加上如下代码:
export PATH=/usr/local/mysql/bin:$PATH
同步资源:
source /etc/profile
初始化数据库
#进入bin目录
cd /usr/local/mysql/bin
#初始化数据库
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
添加开机启动
修改配置文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
执行启动添加命令
chkconfig --add mysqld
chkconfig mysql on
mysql指令操作
#启动
service mysqld start
#重启
service mysqld restart
#停止
service mysqld stop
安装后续操作
获取临时密码
注:临时密码有时候获取不到请使用后面的跳过授权方式。
[root@localhost bin]# grep 'temporary password' /var/log/mysqld.log
2019-04-01T06:27:32.332025Z 1 [Note] A temporary password is generated for root@localhost: L351tWTtCo<>
2019-04-01T06:38:53.070454Z 1 [Note] A temporary password is generated for root@localhost: .whwt&bf2hyA
跳过用户权限
1. vi /etc/my.cnf,在[mysqld]中添加
skip-grant-tables
例如:
[mysqld]
skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
2. 重启mysql
service mysql restart
3. 使用用户无密码登录
mysql -uroot -p (直接点击回车,密码为空)
4. 选择数据库
use mysql;
5. 修改root密码
update user set authentication_string=password('123456') where user='root';
6 .刷新权限
flush privileges;
7 .退出
exit;
8 .删除第1部增加的配置信息
skip-grant-tables
9 .重启mysql
service mysql restart
mysql命令不可用
source /etc/profile
忘了同步环境变量会导致指令不可用。
更改root密码
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
创建用户并开启远程访问
mysql> CREATE USER 'dlwy'@'%' IDENTIFIED BY 'dlwy';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'dlwy'@'%' identified by 'dlwy'
-> ;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
迁移MYSQL数据目录
注意:迁移数据目录网上很多不可借鉴,只需要修改datadir和pid的位置(my.cnf配置目录不在/usr/local/mysql/data的都可以不用修改)。
停止mysql服务:
#停止
service mysqld stop
修改/etc/my.cnf
转移/usr/local/mysql/data目录
找一个分区目录空间充足的路径,这里以/home路径测试:
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/cl-root 50G 20G 31G 40% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 8.6M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/sda1 1014M 140M 875M 14% /boot
/dev/mapper/cl-home 873G 166M 873G 1% /home
tmpfs 770M 0 770M 0% /run/user/0
[root@localhost ~]#
创建转移数据目录:
mkdir /home/mysql-data-transfer-dir
cd /home/mysql-data-transfer-dir
mkdir data
复制数据:
cp -a /usr/local/mysql/data /home/mysql-data-transfer-dir
重启mysql服务:
#启动
service mysqld start
最终迁移后的结果
按照你想要的目的,通过最简单的方式达到目标才是最高效的。