搭建数据库
Docker-Mysql 1. 新建数据库 sudo docker pull mysql 2. 启动数据库 --name your-mysql-container:指定容器的名称。
-e MYSQL_ROOT_PASSWORD=yourpassword:设置 MySQL 的根用户密码(替换为你想要的密码)。
-p 3306:3306:将主机的 3306 端口映射到容器的 3306 端口。
-d:以分离模式运行容器。 sudo docker run --name mysql -e MYSQL_ROOT_PASSWORD=数据库密码 -p 3306:3306 -d mysql 3. 备份数据库 mysqldump -u your_username -p your_database_name > database_backup.sql 4. 注意事项 安装Mysql后设置lower_case_table_names属性报错 在MySQL8.0版本中,必须在初始化MySQL服务器之前将lower_case_table_names设置为所需要的值,这需要在首次启动MySQL服务器之前在MySQL配置文件中设置lower_case_table_names。但是在使用ubuntu的apt源安装MySQL时,系统会自动配置并启动MySQL服务器,这就需要在安装前提前设置好配置文件。具体操作步骤如下:
<!--设置 Mysql 初始化环境-->
sudo mkdir/etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
<!--编辑mysqld.cnf文件-->
[mysqld]
# 0[Linux默认]:区分大小写;
# 1[Windows默认]:不区分大小写;
# 2[Mac默认]:存储时区分大小写,比较时不区分大小写。
lower_case_table_names=1
innodb_log_file_size = 512M innodb_strict_mode = 0
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
<!--安装Mysql,在安装过程中会提示存在配置文件,此时选择‘N’选项采用已经存在的配置文件-->
sudo apt install mysql-server
<!--Mysql配置,可根据需求设定-->
sudo mysql_secure_installation
<!--设置root账号密码,第一次设置时默认无密码,直接进入mysql-->
sudo mysql -u root
<!--登录后设置root密码-->
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysql密码';
<!--刷新设置-->
FLUSH PRIVILEGES;
<!--重启Mysql服务-->
sudo systemctl restart mysql
<!--使用密码登录root账号-->
sudo mysql -u root -p
<!--输入密码-->
<!--进入Mysql环境--> 设置用户可以远程登录MySQL <!--使用密码登录root账号-->
sudo mysql -u root -p
<!--输入密码-->
<!--进入Mysql环境-->
<!--设置root用户可远程访问-->
UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost';
<!--刷新权限-->
FLUSH PRIVILEGES;
<!--查看权限-->
SELECT Host, User FROM mysql.user; ubuntu18.04 安装mysql8.0报错 错误:1 http://repo.mysql.com/apt/ubuntu bionic InRelease 由于没有公钥,无法验证下列签名: NO_PUBKEY B7B3B788A8D3785C 解决办法: 切换为交大源。 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys B7B3B788A8D3785C ERROR 1819 (HY000): Your password does not satisfy the current policy requirements SHOW VARIABLES LIKE 'validate_password%';
SET GLOBAL validate_password.policy = LOW; -- 选择 LOW, MEDIUM 或 STRONG
SET GLOBAL validate_password.length = 6; -- 设置最小长度
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword123!'; 忘记密码 停止mysql服务 sudo systemctl stop mysql 启动 MySQL 的安全模式 sudo mysqld_safe --skip-grant-tables & 使用 root 登录 MySQL mysql -u root 修改密码 USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES; 退出并重启mysql服务 sudo systemctl start mysql