数据库配置
Ubuntu20+MySQL8.0.23
安装
sudo apt install mysql-server #安装mysql
sudo apt-get install libmysqlclient-dev #安装mysql库
sudo mysql_secure_installation #初始化配置信息
- VALIDATE PASSWORD COMPONENT…(使用密码强度校验组件) 输入: n
- New Password:(设置新密码,并重复一遍)
- Remove anonymous users (删除匿名用户) n
- Disallow root login remotely(拒绝远程root账号登录) n
- Remove test database and access to it(移除test数据库) n
- Reload privilege tables now (现在就重新载入权限表) y
sudo mysql -uroot -p
#配置root用户外网也可以连接并登录
mysql>use mysql;
mysql>update user set Host='%' where User='root';
mysql>GRANT ALL ON *.* TO 'root'@'%';
#创建用户并授权
mysql> create user tpytpytpy identified by 'aidaidai111824';
mysql> grant all privileges on root.* to 'tpytpytpy'@'%'; #%表示任何ip都可以访问到all privileges 表示所有权限
mysql>FLUSH PRIVILEGES;
配置客户端远程连接MySQL
sudo iptables -L -n | grep 3306 #查看防火墙是否通过3306端口
sudo iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306#允许3306通过防火墙
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf #将bind-address = 127.0.0.1 改成bind-address = 0.0.0.0
sudo /etc/init.d/mysql restart
之后使用如SQLyog连接,地址填Linux虚拟机地址,用户名密码为为MySQL中配置的可远程连接的用户名及密码,查看用户信息如下:
mysql>use mysql;
mysql>select * from user\G; #查看所用配置的用户信息
mysql>elect user,host,authentication_string from user; #查看用户的常用信息
Mysql8卸载
dpkg --list|grep mysql
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-8.0
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
dpkg --list|grep mysql
sudo apt-get autoremove --purge mysql-apt-config
数据库移植注意事项
show variables; #查看各项配置
show variables like 'sql_mode'; #检查sql_mode,保证检查规则相同
mysql> alter database mydb character set 'utf8';#修改数据库的字符集
mysql> alter table mytbl convert to character set 'utf8';#修改数据表的字符集
查看sql命令的执行周期
show variables like 'profiling'; #检查是否开启执行周期缓存
set profiling=1; #开启该功能
SHOW PROFILES; #查看缓存的执行语句
SHOW PROFILE CPU,BLOCK IO FOR QUERY 1; #查看对应语句执行用时