标签 mysql 下的文章

小编目前也米有发现比较好的卸载方式,只能删除mysql的相关目录。

 sudo rm /usr/local/mysql

 sudo rm -rf /usr/local/var/mysql

 sudo rm -rf /usr/local/mysql*

 sudo rm -rf /Library/StartupItems/MySQLCOM

 sudo rm -rf /Library/PreferencePanes/My*

 vim /etc/hostconfig and removed the line MYSQLCOM=-YES-rm -rf ~/Library/PreferencePanes/My*

 sudo rm -rf /Library/Receipts/mysql*

 sudo rm -rf /Library/Receipts/MySQL*

 sudo rm -rf /var/db/receipts/com.mysql.*

小编今天装了个mysql5.7最后一步直接点击了OK,然后就没记住密码。小编在这里提供下重置mysql密码的方法。

  • 首先关闭mysql服务器

    sudo /usr/local/mysql/support-files/mysql.server stop
  • 进入mysql的bin目录

    cd /usr/local/mysql/bin
  • 获取root权限

    sudo su
  • 重启mysql服务器

    ./mysqld_safe --skip-grant-tables &
  • 退出,直接按command+D
  • 配置短命令

    alias mysql=/usr/local/mysql/bin/mysql
  • 连接数据库

    mysql
  • 切换数据库

    use mysql
  • 获取权限

    flush privileges;
  • 重置密码

    set password for 'root'@'localhost'='root'('新密码');

    好了,大功告成,退出mysql,重新用新密码登录就可以了。

小编今天要往mysql中,导入一个接近1G的数据。通过mysql的图形化工具发现导入的很慢,预计市场需要4个小时左右(可能是小编的电脑性能不佳。哈哈)。这也太耽误事了,后来发现我们可以通过source命令。
操作方法:

# 选择数据库
use 数据库名;
# 导入数据(后面跟着SQL文件的路径即可)
source d:/test.sql;

小编今天再给表加字段的时候,发现数据库报错,总是不能加入数据显示(Errcode: 28 - No space left on device), Time: 0.102000s这么一个错误。空间已满,这种情况一般是由于某个程序的日志较多造成的。
我们执行df -lh。查看写磁盘情况,发现/dev/vda1 40G 38G 0 100% /
达到了100%。
我们再执行du -sh /* .就可以发现哪个文件夹内容较多了。然后我们就可以一级一级的执行该方法,知道找到最终的日志文件就可以了。然后清理下我们不需要的日志文佳,数据库就正常了。

出现这种情况首先检查你的SQL是否存在问题,确定没有问题的话,就是Mysql可能正在执行其他消耗资源的操作,在确保不会影响业务的情况下我们可以杀掉正在执行的任务。

  • 查看正在执行的任务:show full processlist; 可能会显示很多,不确定是哪一个的时候就全部停止。
  • 停止正在执行的任务:kill processid;processid就是刚才查出来的。

如果这样还是不能解决问题,那么你可以试着重启下mysql,这样所有的任务就会停止了。

  • linux的重启mysql命令:

    • 使用 service 启动:service mysql restart
    • 使用 mysqld 脚本启动:/etc/inint.d/mysql restart
  • windows的重启mysql

    • 停止MySQL:net stop mysql
    • 启动MySQL:net start mysql

mysql.jpeg

小编今天帮朋友解决了一个数据库出现了一个数据库时区的错误问题:The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time
解决办法:
控制台执行以下命令

show variables like '%time_zone%';
set global time_zone='+8:00';

最近小编帮以好友解决了一个Mysql8.0版本安装之后出现MySQL服务无法启动请键入 NET HELPMSG 3534 以获得更多的帮助,下面小编把解决办法与大家分享一下。
因为不是出现的:服务名无效。的错误也就表明现在的服务已经属于系统服务了,不是环境变量的问题。小编就打开了mysql的安装目录,然后发现没有data文件夹以及my.ini文件。下面小编就给出相应的解决办法:

  1. 没有文件夹以及里面的内容。
    解决办法:

    • 以管理员的身份打开dos窗口;
    • 切换到mysql的bin目录里面;
    • 以此执行下面的命令:
    • 卸载服务:mysql -remove
    • 安装服务:mysql --initialize-insecuremysql -install
  2. 没有my.ini文件
    解决办法:

    • 新建my.ini文件
    • 输入以下内容(记得修改路径):
         [client]
         port=3306
         [mysql]
         default-character-set=utf8
    
         [mysqld]
         port=3306
         # 设置mysql的安装目录
         basedir="E:/MySQL/"
         # 设置mysql数据库的数据的存放目录
         datadir="E:/MySQL/data/"
         character-set-server=utf8
         default-storage-engine=MyISAM
         #支持 INNODB 引擎模式。修改为 default-storage-engine=INNODB 即可。
         #如果 INNODB 模式如果不能启动,删除data目录下ib开头的日志文件重新启动。
    
         sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
         max_connections=512
    
         query_cache_size=0
         table_cache=256
         tmp_table_size=18M
    
         thread_cache_size=8
         myisam_max_sort_file_size=64G
         myisam_sort_buffer_size=35M
         key_buffer_size=25M
         read_buffer_size=64K
         read_rnd_buffer_size=256K
         sort_buffer_size=256K
    
         innodb_additional_mem_pool_size=2M
    
         innodb_flush_log_at_trx_commit=1
         innodb_log_buffer_size=1M
    
         innodb_buffer_pool_size=47M
         innodb_log_file_size=24M
         innodb_thread_concurrency=8
         innodb_thread_concurrency=8
         innodb_thread_concurrency=8
         innodb_thread_concurrency=8
         innodb_thread_concurrency=8
    

delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。而且delete删除数据后,拥有自动增长约束的字段,将会自动增长,不会从1继续增长,而是继续以前的。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。而且truncate删除数据后,拥有自动增长约束的字段,将会从1自动增长。

小编用的是phpStudy自带的mysql数据库,但在使用的时候,往往不需要php,只需要mysql数据库,一起启动太麻烦了,直接运行net start mysql显示服务名无效。于是需要将mysql数据库安装到了系统服务。
首先进入mysql的bin目录:
1.png
然后以管理员的身份打开命令窗口,然后执行:mysqld --install
2.png
成功之后会有提示,如果现实Install/Remove of the Service Denied!,就是没有用管理员的身份去运行。
如果想移除这个服务,也是在mysql的bin目录里面,以管理员的身份打开命令窗口,运行mysqld --remove

在微信开发的过程中,由于用户的昵称用的是emoji表情,小编就吃了很大的一个亏,在给客户演示的时候发现的SQL错误,导致存入失败。经过一段时间的摸索,发现数据库是可以直接存储emoji表情。小编的解决方法如下:
1.mysql数据库的版本大于等于5.5.3
2.把数据库的编码改成utf8mb4,字符集校对改成utf8mb4_general_ci
3.把要存储emoji表情的表或者字段也改成utf8mb4,字符集校对改成utf8mb4_general_ci
4.数据库配置也要更改 'DB_CHARSET' => 'utf8mb4', // 数据库编码默认采用utf8
5.重启数据库。