AWS Linux 7.1 安装 mysql57参考tecadmin
- yum update
- yum install mysql57-server
- service mysqld start
- hkconfig mysqld on
- mysql_secure_installation # root password set
如果设置 root 密码报错,则使用 mysql_upgrade 更新mysql的bug
可参考kikajack的mysql5.7版本安装
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm
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
yum install -y mysql-community-server
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 ,上述开启日志配置将失效。
主从搭建尚未尝试可参考方志朋的专栏
数据库文件默认在: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 -h 10.1.225.228 -P 3306 -u root -p
远程访问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地址
在mysqld下添加一行skip-grant-tables ,这样就可以免密登录MySQL了
service mysqld restart
use mysql
update user set authentication_string=password('新密码') where user='root';
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
tomcat 安装目录在/usr/share/tomcat7 启动、停止命令、日志都在这个目录
web app,配置文件在/var/lib/tomcat7
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
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文件路径
[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
mysqld --initialize --console
管理员命令打开 cmd,执行服务创建
mysql/bin$mysqld install
net start mysql
mysql -u root -p
此处让输入密码,回车后直接登录
如果没有MySQL没有启动成功,可以在bin目录下执行 mysqld --console,报错信息会输出至console
进入数据库 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');
退出mysql后执行停止服务命令
net stop mysql
注释掉配置文件 my.ini 中的 skip-grant-tables
批量删除某个库下的所有表只需如下两步:
1)第一步(只需将下面的"库名"替换成实际操作中的库名即可)
select concat('drop table ',table_name,';') from information_schema.TABLES where table_schema='库名';
2)第二步
切换到这个库下,把第一步的执行结果导出,然后全部执行
[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
mysql-8.0.21-macos10.15-x86_64.tar.gz版本
参考自杨俊明
解压到/usr/local/下,并重命名为mysql
cd /usr/local
chown -R 当前登录mac的管理员用户名 mysql
这一步的目的,主要是保证/usr/local/mysql下可以写入数据
cd /usr/local/mysql/bin
sudo ./mysqld --initialize --user=mysql
记录过程中产生的 root 密码,没记下这个密码,导致后面无法登录,可以 rm -rf /usr/local/mysql/data/* 删除,再来一次
使用命令 ps aux | grep mysql 查找是否存在 mysql实例,kill 掉后再启动
cd /usr/local/mysql/support-files
./mysql.server start
cd /usr/local/mysql/bin
./mysql -u root -p
输入之前产生的 root 密码登录后,再执行密码更改
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
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=