语法如下: mysqlsh [options] -- shell_object object_method [arguments] 示例: mysqlsh -h172.16.22.1 -P3306 - uroot -p -- cluster status 可以直接输出 cluster 状态信息,等同于: mysqlsh -h172.16.22.1 -P3306 -uroot -p var cluster 这样修改: shell.options.setPersist("credentialStore.savePasswords","always") 查看当前保存了密码的连接串 可以在 mysqlsh 中查看 root@127.0.0.1:3306] user = root password = ***** host = 127.0.0.1 port = 3306 设置连接串保存密码 正常情况下每次使用 mysqlsh 连接 MySQL Server,输入密码后都会询问是否保存密码,键入 “Y” 即可保存密码: [root@10-186-63-93 ~]# mysqlsh universe_op@10.186.63.93
自打上期开始了关于innodb cluster的安装文字后,感觉突然就一股innodb cluster 的风扑面而来,新技术的掌握看来是热情很高。
/mysqlsh -S /tmp/mysql_mysql57_1.sock -- util check-for-server-upgrade --config-path=/etc/my_57_1.cnf No issues foundErrors: 2Warnings: 59Notices: 6这份报告通过mysqlsh util.checkForServerUpgrade()检查了MySQL服务器从
-8.0.32.patch,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0.32.patch。 /bin/mysqlsh . /lib/mysqlsh/libprotobuf.so.30 (0x00007f60660a2000) 这次找到依赖库文件了。 运行 mysqlsh,看能否正常使用: $ . WARNING: Found errors loading plugins, for more details look at the log at: /root/.mysqlsh/mysqlsh.log 看到有 WARNING 提示,检查日志文件 /root/.mysqlsh/mysqlsh.log,看到有了类似下面的内容: ModuleNotFoundError: No module named 'certifi
-8.0.32.patch,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0.32.patch。 /bin/mysqlsh . /lib/mysqlsh/libprotobuf.so.30 (0x00007f60660a2000) 这次找到依赖库文件了。 运行 mysqlsh,看能否正常使用: $ . WARNING: Found errors loading plugins, for more details look at the log at: /root/.mysqlsh/mysqlsh.log 看到有 WARNING 提示,检查日志文件 /root/.mysqlsh/mysqlsh.log,看到有了类似下面的内容: ModuleNotFoundError: No module named 'certifi
使用 mysqlsh-js>cluster.status() 可以确认集群和节点成员的状态信息: ? 此外,还支持查看扩展状态。 mysqlsh-js>cluster.status({extended:2})可以查看: •连接和回放处理的事务 ? 执行 mysqlsh-js>cluster.options() 可以查看 •集群全局配置选项 •每个集群成员的设置 ? // 变成多主模式 mysqlsh-js> cluster.switchToMultiPrimaryMode() //变成单主模式 mysqlsh-js> cluster.switchToSinglePrimaryMode 使用 $mysqlsh –-log-level=4 ? 输出诊断信息。
编译mysql-shell 2.1 环境准备 2.2 开始编译mysql & mysql-shell 2.3 利用patchelf修改mysqlsh二进制文件 3. 2.3 利用patchelf修改mysqlsh二进制文件 编译安装完毕后,执行下面的命令,查看 mysqlsh 二进制文件的依赖关系是否都正常,会发现其中有个so依赖文件找不到: $ cd /usr/local /bin/mysqlsh $ ldd bin/mysqlsh cd ../.. [root@mysqlsh-c8 mysql-shell-8.0.27-18-Linux-glibc2.28-x86_64]# ldd bin/mysqlsh linux-vdso.so /lib/private/libprotobuf.so.22 (0x00007f2b8a5db000) 可以看到,mysqlsh 能找到 libprotobuf 这个动态库文件了,也就可以正常使用了。
get/Downloads/MySQL-Shell/mysql-shell-1.0.9-linux-glibc2.12-x86-64bit.tar.gz --no-check-certificate mysqlsh 命令是这个工具的核心部分,如果查看这个mysqlsh命令的情况如下: # file mysqlsh mysqlsh: ELF 64-bit LSB executable, x86-64, version # mysql -uroot -h127.0.0.1 --port=3308 -pmysql 那么在mysqlsh里面就很容易了。 mysql-sql> select @@port; +--------+ | @@port | +--------+ | 3308 | +--------+ MySQL Shell的连接还支持uri的方式,使用mysqlsh
Examine these commands, which execute successfully on the ic1 host: mysqlsh> dba.createCluster( 'cluster1 ' , {memberWeight:35}) mysqlsh> var mycluster = dba.getCluster () mysqlsh> mycluster.addInstance ( 'ic @ic2' , {memberWeight:25}) mysqlsh> mycluster.addInstance( 'ic@ic3' , {memberWeight:50}) Now examine
`sbtest1` ORDER BY `id` /* mysqlsh export_table, dumping table `test`. `sbtest2` WHERE `id` BETWEEN 386026 AND 551464 ORDER BY `id` /* mysqlsh dump_schemas, dumping table ` `sbtest2` WHERE `id` BETWEEN 1047781 AND 1171859 ORDER BY `id` /* mysqlsh dump_schemas, dumping table `sbtest2` WHERE `id` BETWEEN 675544 AND 799622 ORDER BY `id` /* mysqlsh dump_schemas, dumping table ` `sbtest2` WHERE `id` BETWEEN 1420018 AND 1544096 ORDER BY `id` /* mysqlsh dump_schemas, dumping table
Report in Python - DB Size 使用Python创建新报告-数据库大小 MySQL Shell allows customization based on the HOME/.mysqlsh /plugins/ folderMySQL Shell允许基于 HOME / .mysqlsh / plugins /folder进行自定义 When MySQL Shell is launched, File : $HOME/.mysqlsh/plugins/ext/dbutil/init.py ? Once the file is created under the $HOME/.mysqlsh/plugins/ext/dbutil/init.py, MySQL Shell looks up NEW 在$ HOME / .mysqlsh / plugins / ext / dbutil / init.py下创建文件后,MySQL Shell将查找新报告,而“ \ show”将显示添加的“ dbsize
2.3 修改MySQL Shell源码包 打开链接:https://gitee.com/GreatSQL/GreatSQL-Shell-Docker/blob/master/mysqlsh-for-greatsql -8.0.32.patch,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0.32.patch。 3.3 运行测试 运行 mysqlsh测试前,还要先将libprotobuf.so动态库文件拷贝放到MySQL Shell目录下,再运行测试: $ cp /usr/local/lib/libprotobuf.so .30 /usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64/lib/mysqlsh/ $ /usr/local/greatsql-shell -8.0.32-25-Linux-glibc2.28-x86_64/bin/mysqlsh MySQL Shell 8.0.32 ...
archives/shell/ 1 直接运行 yum -y install mysql-shell-8.0.27-1.el7.x86_64.rpm 2 在安装完毕后,直接运行 mysqlsh \connect 的命令是在mysqlsh中连接你的mysql数据 \history 为展示你曾经执行的命令的回放 \js 切换到javascript 命令中 \py 切换到 python的状态中 \ *to test@'%'; 4 准备通过mysql shell 的方式连接MYSQL mysqlsh --sql--uri=test@192.168.198.101 -P3306 -p1234.Com 8 查询数据的格式问题 Mysqlsh展示数据的方式主要有三种 1 针对json 数据的 josn pretty 2 针对传统数据的 table 3 针对传统数据的 vertical mysqlsh test@192.168.198.101 -P3306 -p1234.Com -D world_x --sql -e "SELECTName,District, JSON_EXTRACT(info, ' mysqlsh
2.3 修改MySQL Shell源码包 打开链接:https://gitee.com/GreatSQL/GreatSQL-Shell-Docker/blob/master/mysqlsh-for-greatsql -8.0.32.patch,下载GreatSQL补丁包文件 mysqlsh-for-greatsql-8.0.32.patch。 3.3 运行测试 运行 mysqlsh测试前,还要先将libprotobuf.so动态库文件拷贝放到MySQL Shell目录下,再运行测试: $ cp /usr/local/lib/libprotobuf.so .30 /usr/local/greatsql-shell-8.0.32-25-Linux-glibc2.28-x86_64/lib/mysqlsh/ $ /usr/local/greatsql-shell -8.0.32-25-Linux-glibc2.28-x86_64/bin/mysqlsh MySQL Shell 8.0.32 ...
就可以开始使用 MySQL Shell for GreatSQL 了 $ mysqlsh 2.2 界面特征 MySQL Shell for GreatSQL 的界面如下: 细心的同学就会发现,有一个 WARNING ,没关系我们根据提示看下 mysqlsh.log $ cat /root/.mysqlsh/mysqlsh.log 在日志中发现这样一段提示,意思就是少了一个 Python 的模块 =/usr/local/GreatSQLshell/greatsql-shell-8.0.25-16-Linux-glibc2.17-x86_64/share/mysqlsh/prompt/prompt Usage examples: $ mysqlsh root@localhost/schema $ mysqlsh mysqlx://root@some.server:3307/world_x $ mysqlsh $ mysqlsh -- util check-for-server-upgrade root@localhost --output-format=JSON $ mysqlsh mysqlx://user
例如:mysqlsh --py mysqlsh --file hello.py echo "show databases;" | mysqlsh --sql --uri root@localhost
zabbix-sql-scripts/mysql/history_pk_prepare.sql 源码包里地址:zabbix-6.0.0/database/mysql/ history_pk_prepare.sql) 导出导入数据: Mysqlsh Mysqlsh(https://dev.mysql.com/doc/mysql-shell/8.0/en/mysql-shell-install-linux-quick.html)应该能够连接到数据库。 mysqlsh -uroot -S /run/mysqld/mysqld.sock --no-password -Dzabbix 运行:(CSVPATH功能需要被启用 参数local_infile = DROP TABLE history_log_old; DROP TABLE history_text_old; 当MySQL <5.7, MariaDB (或者因为一些原因mysqlsh 不能使用时) 这个选项更慢,更耗时,只有在有理由不使用mysqlsh时才使用。
<directory> 加载: $ myloader -t 88 \ -d <directory> MySQL Shell转储/加载 数据以约256 MB的块的形式转储 转储: mysqlsh-js {threads: 88, bytesPerChunk: "256M"}) 加载: mysqlsh-js 当MySQL Shell跟踪加载进度时,首先可以通过仅加载DDL,进行更改,然后加载其余的转储来添加分区: mysqlsh-js> util.loadDump("<directory>", {threads : 88 loadData: false}) mysqlsh-js> \sql ALTER TABLE ontime.ontime PARTITION BY KEY() PARTITIONS 128; mysqlsh-js
linux-glibc2.17-x86-64bit mysql-shell 建议再配置一下环境变量 将“/usr/local/mysql-shell/bin"追加至/etc/profile中 在其他位置直接运行mysqlsh 进行数据库备份 2.1 登录数据库 使用mysqlsh登录数据库,并列出库名,例如: [root@VM-4-14-centos ~]# mysqlsh -u root -p -S /data/mysql | +--------------------+ 6 rows in set (0.0008 sec) MySQL localhost SQL > 其中登录语法为: mysqlsh 2.2 备份整个实例 创建备份目录 mkdir -p /data/backup 登录数据库 mysqlsh -u root -p -S /data/mysql/mysql3306/tmp/mysql.sock 2.3 备份指定库 创建备份目录:重新创建一个专用于备份指定库的目录 mkdir -p data/backup/backup_schemas 使用shellsh登录数据库,并查看当前有哪些库 # mysqlsh
大佬写的mysql-shell 插件的地址 https://github.com/lefred/mysqlshell-plugins 安装方法: $ mkdir -p ~/.mysqlsh/plugins $ git clone https://github.com/lefred/mysqlshell-plugins.git ~/.mysqlsh/plugins/ext 注意: 我自己测试,这个插件能支持到 mysql-shell-udr这个插件: cd /root/ git clone https://github.com/lefred/mysql-shell-udr.git mkdir /root/.mysqlsh /init.d mv /root/mysql-shell-udr/* /root/.mysqlsh/init.d 完成上面的2个插件的安装后,我们可以简单试验下效果: $ mysqlsh dts@192.168.2.4 登录进mysqlsh命令行界面 # 查看我们上面安装的mysql-shell-udr MySQL 192.168.2.4:33060+ ssl JS > \show Available