环境配置:
Ubuntu18.04
MySQL安装
首先将apt源进行更新
sudo apt-get update
安装mysql服务
sudo apt-get install mysql-server -y
安装完毕后,验证mysql版本
mysql --version
查看mysql服务状态
systemctl status mysql.service # 查看mysql服务状态
显示activate(runing)表示数据库已经启动
初始化配置
sudo mysql_secure_installation
选择N,不会进行密码的强校验
输入密码,进行数据库root密码的设置
选择Y,删除匿名用户
选择n,允许root远程连接
选择n,不删除test数据库
选择Y,修改权限立即生效
配置远程访问
Ubuntu中,MySQL缺省是只允许本地访问的,使用远程数据管理工具是连不上的;如果想要其他机器进行访问,需要进行配置找到bind-address修改值为0.0.0.0
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
保存,重启数据库
systemctl restart mysql.service
重点来了,如果说想要数据库能够远程连接,需要保证防火墙开启,3306端口,具体如何开启,请自己行百度,这里就不进行赘述了。
开启之后使用root远程连接会有1698问题
select user, plugin from mysql.user;
+-----------+-----------------------+| user | plugin |+-----------+-----------------------+| root | auth_socket || mysql.sys | mysql_native_password || dev | mysql_native_password |+-----------+-----------------------+3 rows in set (0.01 sec)
发现root
的plugin是auth_socket
需要将其改为mysql_native_password
mysql> update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';Query OK, 1 row affected, 1 warning (0.00 sec)Rows matched: 1 Changed: 1 Warnings: 1mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
重启mysql服务
使用Navicat premium,进行测试
连接成功,表示配置成功了
MySQL简单操作
Mysql状态的控制
systemctl status mysql.service # 查看mysql服务状态systemctl start mysql.service # 启动mysql服务systemctl restart mysql.service # 重启mysql服务systemctl stop mysql.service # 关闭mysql服务
登陆数据库
sudo mysql -uroot -p
切换数据库
use xxx;(xxx为数据库的名)
创建数据库
create database xxx; -- 创建名为xxx的数据库
创建只读用户
为xxx数据库创建用户名为username,密码为password的只读用户
mysql > grant select on xxx.* to 'username'@'%' identify by "password";mysql > flush privileges;
创建拥有读写权限的用户
mysql > grant all privileges on xxx.* to 'username'@'%' identify by "password";mysql > flush privileges;
Mysql卸载
查看依赖
dpkg --list|grep mysql
获取一些依赖库的名
执行删除命令
sudo apt-get remove xxxx(xxx依次改为前面获取的依赖库的名)sudo apt-get autoremove --purge xxxx(xxx依次改为前面获取的依赖库的名)sudo apt-get remove mysql-*sudo dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P