官网有说明运行PASA时配置Mysql比较麻烦但是运行速度会比SQLite快funannotate中默认使用SQLite。官网有配置mysql的说明https://github.com/PASApipeline/PASApipeline/wiki/setting-up-pasa-mysqlmysql -uroot create user pasa_writelocalhost identified by pasa_write_pwd; grant all privileges on %_pasa.* to pasa_writelocalhost; create user pasa_accesslocalhost identified by pasa_access;运行到Running PASA alignment step报错如下Running CMD: /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/scripts/create_mysql_cdnaassembly_db.dbi -c /media/sf_F_DRIVE/Af293/funannotate/Af293/update_misc/pasa/alignAssembly.txt -S /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/schema/cdna_alignment_mysqlschema -rDBI connect(database;hostlocalhost,pasa_write,...) failed:Cant connect to local MySQL server through socket /tmp/mysql.sock(2) at /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/PerlLib/DB_connect.pm line 72.是mysql.sock的路径不对之前老版本默认是在/tmp/mysql.sock但是新的不在这通过以下代码查找新的路径sudo find / -type s -name *.sock 2/dev/null | grep mysql [sudo] cx 的密码 /run/mysqld/mysqld.sock /run/mysqld/mysqlx.sock为了能运行建立了软链接ln -sf /run/mysqld/mysqld.sock /tmp/mysql.sock运行之后仍然有报错Running CMD: /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/scripts/create_mysql_cdnaassembly_db.dbi -c /media/sf_F_DRIVE/Af293/funannotate/Af293/update_misc/pasa/alignAssembly.txt -S /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/schema/cdna_alignment_mysqlschema -rDBI connect(database;hostlocalhost,pasa_write,...) failed: Authentication plugin caching_sha2_password cannot be loaded: /home/cx/anaconda3/envs/funannotate/lib/plugin/caching_sha2_password.so: 无法打开共享对象文件: 没有那个文件或目录 at /home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/PerlLib/DB_connect.pm line 72.或者将配置文件中的位置改了/home/cx/anaconda3/envs/funannotate/opt/pasa-2.5.2/pasa_conf/conf.txt中的# Pass socket connections through Perl DBI syntax e.g.#MYSQLSERVERmysql_socket/tmp/mysql.sock原来的MYSQLSERVERmysql_socket/run/mysqld/mysqld.sock保存后运行会出现上述同样的错误“无法打开共享对象文件”这是因为MySQL 8.0的认证插件问题。Perl的DBD::mysql模块找不到caching_sha2_password.so文件。解决办法修改用户认证方式为mysql_native_passwordsudo mysql -u root -p要加sudo否则会报错ERROR 1698 (28000): Access denied for user rootlocalhost进不去mysql。在MySQL中执行-- 查看当前用户的认证插件 SELECT user, host, plugin FROM mysql.user WHERE user pasa_write; ---------------------------------------------- | user | host | plugin | ---------------------------------------------- | pasa_write | localhost | caching_sha2_password | ---------------------------------------------- -- 将认证方式改为mysql_native_password ALTER USER pasa_writelocalhost IDENTIFIED WITH mysql_native_password BY pasa_password; -- 或者重新创建用户如果ALTER不行 DROP USER IF EXISTS pasa_writelocalhost; CREATE USER pasa_writelocalhost IDENTIFIED WITH mysql_native_password BY pasa_password; GRANT ALL PRIVILEGES ON pasa_db.* TO pasa_writelocalhost; FLUSH PRIVILEGES; #pasa_password要与前面配置文件conf.txt中的一致 -- 验证修改 SELECT user, host, plugin FROM mysql.user WHERE user pasa_write; -- 退出 EXIT;