安装Mysql

Linux Environment

AWS Linux 7.1 安装 mysql57参考tecadmin

  1. yum update
  2. yum install mysql57-server
  3. service mysqld start
  4. hkconfig mysqld on
  5. mysql_secure_installation # root password set

如果设置 root 密码报错,则使用 mysql_upgrade 更新mysql的bug

CentOs

可参考kikajack的mysql5.7版本安装

1st 下载yum源

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

2nd 本地安装yum源

yum localinstall mysql57-community-release-el7-11.noarch.rpm

3rd 检查 mysql 源是否安装成功

yum repolist enabled | grep "mysql.-community."

出现以下信息,说明安装成功:

mysql-connectors-community/x86_64    MySQL Connectors Community              108
mysql-tools-community/x86_64         MySQL Tools Community                    90
mysql57-community/x86_64             MySQL 5.7 Community Server              347
4th 使用 yum install 命令安装Mysql:

yum install -y mysql-community-server

5th 安装成功后,启动mysql(这个安装过程时间可能较长)

systemctl start mysqld

启动完成后,查看Mysql的状态:

systemctl status mysqld

上述命令显示以下信息,则安装成功:

● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-06-20 10:24:39 CST; 4s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 13879 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 13799 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 13883 (mysqld)
CGroup: /system.slice/mysqld.service
└─13883 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

设置开机启动:

systemctl enable mysqld

修改Mydql 密码
mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。

grep 'temporary password' /var/log/mysqld.log

上面的命令显示的密码如下:

2019-06-20T02:24:34.544392Z 1 [Note] A temporary password is generated for root@localhost: SrwXhkgt9t+;

首次登录mysql,修改密码:

mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Forezp@2019'; 

允许远程登录
修改 root 为允许远程连接,生产环境不建议:

mysql> use mysql;
mysql> UPDATE user SET Host='%' WHERE User='root';
mysql> flush privileges;

开启日志(非必须)
(非必须)开启sql语句的日志,生产环境不建议开启:
查看日志目录,并开启sql语句的日志:

mysql>  show variables like '%general_log%';
mysql>  set global general_log=on;

开启后,重启Mysql ,上述开启日志配置将失效。
主从搭建尚未尝试可参考方志朋的专栏

Linux 进入 Mysql数据库

数据库文件默认在:cd /usr/share/mysql
配置文件默认在:/etc/my.cnf
数据库目录:/var/lib/mysql/
配置文件:/usr/share/mysql
相关命令:/usr/bin

    mysql -u gzuser -p
    // next step enter your password here
    show databases;  //展示数据库
    use gzdb;  //进入gadb数据库
    show tables; //展示所有表
    //如果想要创建新的表,直接复制sql文件内容,粘贴至此即可

    // 创建数据库 编码utf8
    CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    // 查看编码
    SHOW VARIABLES LIKE 'char%'
修改数据库编码
  // 编辑 /etc/mysql/mysql.conf.d/mysqld.cnf
   在lc-messages-dir= /usr/share/mysql 语句后添加 character-set-server=utf8
   // 编辑 /etc/mysql/conf.d/mysql.cnf
   添加代码:default-character-set=utf8
   /etc/init.d/mysql restart 命令重启MySQL服务

查看mysql默认读取my.cnf的目录
如果没有设置使用指定目录的my.cnf,mysql启动时会读取安装目录根目录及默认目录下的my.cnf文件
查看mysql启动时读取配置文件的默认目录

mysql --help | grep 'my.cnf'

结果如下:

          order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf  /etc/mysql/my.cnf  /usr/etc/my.cnf ~/.my.cnf

/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。
添加 character-set-server=utf8

远程连接 Mysql

mysql -h 10.1.225.228 -P 3306 -u root -p

远程无法连接上 mysql

远程访问mysql出现Access denied for user 'root'@'提示

[weblogic@localhost ~]$ mysql -h 10.1.225.228 -P 3306 -u root -p
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'10.1.16.35' (using password: YES)

解决远程无法登录方法mysql

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.02 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

/etc/my.cnf 配置文件不添加以下内容在5.7版本授权时会报
validate_password_policy=0
validate_password_length=4

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
远程连接只查看到部分数据库

USE mysql;
GRANT ALL PRIVILEGES ON . TO 'root'@'%'WITH GRANT OPTION;
FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES表示授权所有权限, 上面*.中第一个是授权可以访问的数据库名称, root是用户名, %表示请允许任意IP地址

重置 root 密码
  1. 配置文件/etc/my.cnf 更改

在mysqld下添加一行skip-grant-tables ,这样就可以免密登录MySQL了

  1. 重启MySQL

service mysqld restart

  1. 切换到MySQL系统库mysql(不需要输入密码即可进入mysql)

use mysql

  1. 重置root密码
    在MySQL5.7之后,已经没有password这个字段了,password字段改成了authentication_string。
    修改密码我们要修改这个字段的值。

update user set authentication_string=password('新密码') where user='root';

  1. 注释掉之前添加的skip-grant-tables
  2. 再次重启MySQL就可以了
    如果是mysql服务端升级或者重装需要删除 /var/lib/mysq/ 目录,重新安装的mysql启动不起来
定时导出数据库

backup-db-lct.sh 文件内容如下

mysqldump -uroot -pb^GN0MTc4O*xjd@DE3OHgzfQ=$= --default-character-set=utf8 lct > /home/root/backup/lct_$(date +%Y%m%d_%H%M%S).sql

创建用户并授权

创建用户

create user 'jackie chan' identified by '666';

授权用户可以访问哪些数据库中的哪些表

grant all privileges on test2.* to 'jackie chan'@'%' with grant option;

表示允许创建的用户访问root用户创建的test2数据库中的所有表,@'%'表示允许所有ip远程连接

这样以新创建用户的身份登录数据库会看到两个数据库 test2 和 information_schema

Linux 安装 Tomcat
    tomcat 安装目录在/usr/share/tomcat7    启动、停止命令、日志都在这个目录
    web app,配置文件在/var/lib/tomcat7
Linux 查看MySQL状态
    service mysql status;
    service mysql start;
    service mysql stop;

    // 启动、停止脚本有错误。
    /usr/share/tomcat7/bin/startup.sh
    /usr/share/tomcat7/bin/shutdown.sh
    两个脚本的第三十行下面,添加一行:export CATALINA_BASE=/var/lib/tomcat7
debian 安装 Mysql
apt-get install software-properties-common
add-apt-repository -y ppa:ondrej/mysql-5.5
apt-get update
apt-get install mysql-server-core-5.5 
导入导出数据

导出数据库

mysqldump -u root -p --default-character-set=utf8 DATABASE_NAME >/YOUR_DESTINATION/FILE_NAME.sql

导入数据库

mysql -u root -p --default-character-set=utf8 DATABASE_NAME 

mysql导出数据,mysqldump -u root -p --default-character-set=utf8 数据库名 > sql文件路径
mysql导入数据, mysql -u root -p --default-character-set=utf8 数据库名 < sql文件路径

Windows Environment

1st 下载解压版 mysql5.7
2nd 新建 my.ini 文件

[mysqld]
basedir=D:/mysql5
datadir=D:/mysql5/data
tmpdir=D:/mysql5/data
port=3306
character_set_server=utf8
skip-grant-tables
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

其中skip-grant-tables用于初始登录时 root 不需要密码,如果没有此参数会报错

Access denied for user 'root'@'localhost' (using password: YES)

Disable ONLY_FULL_GROUP_BY 需要更改 sql_mode

3rd 初始化数据库

mysqld --initialize --console

4rd 创建服务

管理员命令打开 cmd,执行服务创建

mysql/bin$mysqld install

5th 启动并登录 mysql

net start mysql
mysql -u root -p

此处让输入密码,回车后直接登录

如果没有MySQL没有启动成功,可以在bin目录下执行 mysqld --console,报错信息会输出至console

6th 修改 root 密码

进入数据库 mysql

mysql>use mysql
update user set authentication_string=PASSWORD('NEW_PASSWORD') where user='root';

这里如果提示报错

You must reset your password using ALTER USER statement before executing this statement.

执行以下命令即可

set PASSWORD = PASSWORD('YOUR_PASSWORD');
6th 停止服务

退出mysql后执行停止服务命令

net stop mysql

注释掉配置文件 my.ini 中的 skip-grant-tables

MySQL 下批量清空某个库下的所有表(库不要删除,保留空库)

批量删除某个库下的所有表只需如下两步:
1)第一步(只需将下面的"库名"替换成实际操作中的库名即可)
select concat('drop table ',table_name,';') from information_schema.TABLES where table_schema='库名';
2)第二步
切换到这个库下,把第一步的执行结果导出,然后全部执行

my.cnf配置 示例

[client]
default-character-set = utf8mb4
#
[mysql]
default-character-set = utf8mb4

[mysqld]

#utf8mb4
character-set-client-handshake = FALSE

character-set-server = utf8mb4
lower_case_table_names=1
collation-server = utf8mb4_unicode_ci
sql_mode=''
# binlog
log-bin=mysql-bin
server-id=1

datadir=/var/lib/mysql

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

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

Mac 安装 mysql8

mysql-8.0.21-macos10.15-x86_64.tar.gz版本
参考自杨俊明

1st 解压重命名

解压到/usr/local/下,并重命名为mysql

2nd 调整目录权限
cd /usr/local
chown -R 当前登录mac的管理员用户名 mysql

这一步的目的,主要是保证/usr/local/mysql下可以写入数据

3rd 初始化数据库
cd /usr/local/mysql/bin
sudo ./mysqld --initialize --user=mysql

记录过程中产生的 root 密码,没记下这个密码,导致后面无法登录,可以 rm -rf /usr/local/mysql/data/* 删除,再来一次

4th 启动mysql

使用命令 ps aux | grep mysql 查找是否存在 mysql实例,kill 掉后再启动

cd /usr/local/mysql/support-files
./mysql.server start 
5th 修改密码
cd /usr/local/mysql/bin
./mysql -u root -p

输入之前产生的 root 密码登录后,再执行密码更改

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

Docker 安装 mysql

docker run -d -p 3316:3306 --name mysql57 --restart=always -e MYSQL_ROOT_PASSWORD="root" -e "TZ=Asia/Shanghai" -v /usr/local/mysqlData:/var/lib/mysql -v E:\docker-link\my.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf mysql:5.7.30 mysqld --server-id=1 --log-bin=mysql-bin --sql_mode=

  • 这里需要注意 docker 虽然加载了宿主机的配置my.cnf文件,my.cnf中开启了bin-log,但如果启动命令中不添加 mysqld --server-id=1 --log-bin=mysql-bin 仍然无法开启bin-log模式(仅在 Windows环境下的 docker会出现这种情况)

你可能感兴趣的:(mysql,adb,android)